我使用的是嵌套资源,不知道要传入哪些对象以使链接转到正确的位置。我有3个模型帖子,评论和问题,评论属于帖子,问题属于评论。我正在尝试从帖子索引页面链接到问题索引页面。
这就是routes.rb文件的样子:
resources :posts do
resources :comments do
end
end
resources :comments do
resources :questions do
end
end
帖子索引文件中的链接:
<% post.comments.select(:body).order('created_at desc').limit(2).each do |comment| %>
<%= link_to (comment.body), comment_questions_path(comment, @question) %>
<% end %>
这给了我这个错误:
missing required keys: [:comment_id]
以下是'rake routes |的结果grep comment_question':
comment_questions GET /comments/:comment_id/questions(.:format) questions#index
comment_question GET /comments/:comment_id/questions/:id(.:format) questions#show
谢谢!
答案 0 :(得分:0)
由于您要链接到单个资源,因此正确的路径应该是:
comment_question_path(comment, @question)
如果这不起作用,请尝试设置comment_id明确:
comment_question_path(comment.id, @question)
另外,如果您可以发布rake routes | grep comment_question
命令的结果,那将会有所帮助。
编辑:
当显示rake routes
输出中的第二个条目时,路径/ url方法需要两个参数。
/comments/:comment_id/questions/:id(.:format)
转换为路径方法的符号如下所示(:id
符号是问题ID):
comment_question_path(:comment_id, :id)
根据错误消息,它看起来像是nil,它可能会回落到URI中的下一个路径(在这种情况下为questions
)。
您可以在该路径使用之前抛出调试器语句并显示pp comment
和pp @question
的输出吗?
答案 1 :(得分:0)
<%= link_to (comment.body), comment_questions_path(comment) %>