1

我有 3 个模型:

  • 帖子
  • 注释
  • 问题

评论属于帖子,问题属于评论。在我的帖子索引页面上,我显示了所有帖子以及属于每个帖子的最后一条评论。当试图将最后一条评论链接到问题索引页面时,我的问题就出现了。这就是我尝试这样做的方式:

<%= link_to (post.comments.last.try(:[],:body)), comment_questions_path(@comment) %> 

我得到的错误:

Couldn't find Comment with id=questions

这是我的routes.rb文件:

 resources :posts do
   resources :comments 
 end

 resources :comments do
  resources :questions 
 end

comment_questions_path我跑步的时候rake routes

 comment_questions GET    /comments/:comment_id/questions(.:format)  questions#index

服务器日志:

     Started GET "/comments//questions" for 127.0.0.1 at 2013-09-25 20:23:14 -0400
     ActiveRecord::SchemaMigration Load (0.2ms)  SELECT "schema_migrations".* FROM    "schema_migrations"     
   Processing by CommentsController#show as HTML
  Parameters: {"id"=>"questions"}
    Comment Load (0.2ms)  SELECT "comments".* FROM "comments" WHERE "comments"."id" = ? LIMIT    1     [["id", "questions"]]
   Completed 404 Not Found in 66ms
4

2 回答 2

0

使用这样的路线时要小心!您的 CommentsController 必须响应带有:post_id(嵌套)不带:post_id. 它真的应该看起来更像:

resources :posts do
  resources :comments do
    resources :questions
  end
end
于 2013-09-26T00:17:37.623 回答
0

我看不到如何在页面、操作中加载@comment变量。您正在循环遍历每个,除非您正在执行以下操作:/postsposts#indexpost

@comment = post.comments.last对于post您页面中的每个,您的链接都将不起作用。

您的链接需要如下所示:

<%= link_to (post.comments.last.try(:[],:body)), comment_questions_path(post.comments.last) %>
于 2013-09-26T00:43:19.740 回答