嵌套资源 - UrlGenerationError - 没有路由匹配

Nested Resources - UrlGenerationError - No route matches

我正在开发一个基本的 Rails 应用程序。为了让事情顺利进行,我创建了两个脚手架。

然后我创建了正确的关联。

app/models/calendar.rb

class Calendar < ActiveRecord::Base
   has_many :content_items
end

app/models/content_item.rb

class ContentItem < ActiveRecord::Base
  belongs_to :calendar
end

routes.rb

resources :calendars do
  resources :content_items
end

但是,现在当我尝试查看特定日历的 content_items 时,出现以下错误:

ActionController::UrlGenerationError - No route matches {:action=>"show", :calendar_id=>nil, :controller=>"content_items", :id=>"5"} missing required keys: [:calendar_id]

它说错误来自: views/content_items/index.html.erb

<td><%= link_to 'Show', calendar_content_item_path(content_item.calendar, content_item) %></td>

我尝试了几种不同的方法,但它们会导致不同的错误。自创建嵌套路由以来,我是否需要更新模型 and/or 控制器?

您忘记为路由添加 _path 后缀:

<td><%= link_to 'Show', content_items_path(calendar) %></td>

尝试使用

<td><%= link_to 'Show', calendar_content_item_path(content_item.calendar, content_item) %></td>