我正在創建一個應用程序,允許用戶對創建的項目發佈發表評論。我跟着這個Railscast來建立多態關聯。多態協會 - 如何創建主索引頁面
基於本教程,控制器中的索引頁面將按照下面的詳細說明進行設置,將您帶到localhost:3000/projects/1/comments。
問:我如何路線,並在控制器調節清晰度指數,這樣我可以代替路徑標識爲localhost:3000 /評論,因爲我想創建一個列出所有評論的觀點,無論哪一個項目是發表於?因爲現在的基礎上,路線和下面的代碼,當我去到本地主機:3000 /評論,我得到以下錯誤:
ActiveRecord::RecordNotFound in CommentsController#index
Couldn't find Comment without an ID
app/controllers/comments_controller.rb:32:in `load_commentable'
/app/controllers/comments_controller.rb
class CommentsController < ApplicationController
before_filter :load_commentable
def index
@comments = @commentable.comments
end
private
def load_commentable
resource, id = request.path.split('/')[1,2]
@commentable = resource.singularize.classify.constantize.find(id)
end
end
的routes.rb
resources :projects do
resources :comments
end
resources :comments
而您的評論模型包括這一行:'belongs_to的:commentable ,polymorphic:true',以及你的其他協會? (您可能希望在答案中包含這些內容。) – aceofbassgreg 2013-04-25 01:13:36
是的,它包含該行。它會影響我們如何創建一個通用索引頁面? – spl 2013-04-25 01:26:34
我的想法是,如果協會的設置不正確,您將無法致電commentable.comments。 – aceofbassgreg 2013-04-25 01:27:54