Вложенные ресурсы - 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>
Другие вопросы по тегам