我正在创建一个应用程序,允许用户对创建的项目发布发表评论。我按照这个Railscast设置了多态关联。
根据教程,控制器中的索引页面设置如下,将您带到 localhost:3000/projects/1/comments。
问题:我如何路由它并调整控制器中的 def 索引,以便我可以将索引路由到 localhost:3000/comments,因为我想创建一个列出所有评论的视图,而不管它发布在哪个项目上?因为现在,根据下面的路由和代码,当我转到 localhost:3000/comments 时,我收到以下错误:
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
路线.rb
resources :projects do
resources :comments
end
resources :comments