Вложенные ресурсы - UrlGenerationError - Нет подходящих маршрутов
Я работаю над базовым приложением Rails. Чтобы все заработало, я создал две строительные леса.
- календарь
- content_items
Затем я создал соответствующие ассоциации.
приложение / модели /calendar.rb
class Calendar < ActiveRecord::Base
has_many :content_items
end
приложение / модели / content_item.rb
class ContentItem < ActiveRecord::Base
belongs_to :calendar
end
routes.rb
resources :calendars do
resources :content_items
end
Однако теперь, когда я пытаюсь просмотреть content_items определенного календаря, я получаю следующую ошибку:
ActionController:: UrlGenerationError - Не найдено ни одного маршрута {:action=>"show",:calendar_id=>nil,:controller=>"content_items",:id=>"5"}, пропущены обязательные ключи: [: calendar_id]
Он говорит, что ошибка исходит от:views / content_items / index.html.erb
<td><%= link_to 'Show', calendar_content_item_path(content_item.calendar, content_item) %></td>
Я пробовал несколько разных маршрутов, но они приводят к различным ошибкам. Нужно ли обновлять модель и / или контроллеры, так как я создал вложенные маршруты?
2 ответа
Попробуйте использовать
<td><%= link_to 'Show', calendar_content_item_path(content_item.calendar, content_item) %></td>
Вы забыли добавить _path
суффикс к маршруту:
<td><%= link_to 'Show', content_items_path(calendar) %></td>