我正在开发一个基本的Rails应用程序。为了实现目标,我创建了两个支架。
然后我创建了正确的关联。
应用/模型/ 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 =&gt;“show”,:calendar_id =&gt; nil,:controller =&gt;“content_items”,:id =&gt;“5”}缺少必需的键: [:CALENDAR_ID]
它说错误来自: 的视图/ content_items / index.html.erb
<td><%= link_to 'Show', calendar_content_item_path(content_item.calendar, content_item) %></td>
我尝试了几种不同的路线,但它们会导致不同的错误。自从我创建了嵌套路由后,是否需要更新模型和/或控制器?
答案 0 :(得分:2)
尝试使用
<td><%= link_to 'Show', calendar_content_item_path(content_item.calendar, content_item) %></td>
答案 1 :(得分:0)
您忘了在路由中添加_path
后缀:
<td><%= link_to 'Show', content_items_path(calendar) %></td>