我正在研究一個基本的Rails應用。爲了解決問題,我創建了兩個腳手架。嵌套資源 - UrlGenerationError - 沒有路由匹配
- 日曆
- 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,我得到以下錯誤: 的意見/ content_items/index.html.erb
:ActionController::UrlGenerationError - No route matches {:action=>"show", :calendar_id=>nil, :controller=>"content_items", :id=>"5"} missing required keys: [:calendar_id]
它說的錯誤是來自
<td><%= link_to 'Show', calendar_content_item_path(content_item.calendar, content_item) %></td>
我試過幾條不同的路線,但它們會導致不同的錯誤。我是否需要更新模型和/或控制器,因爲我創建了嵌套路線?
基本軌不能僅從content_item對象生成一個URL。因爲它是嵌套的,所以還需要傳遞父級日曆對象。檢查[文檔](http://edgeguides.rubyonrails.org/routing.html#creating-paths-and-urls-from-objects) –