我是Rails的新手。
我创建了一个Web应用程序,我可以通过/posts/123/comments/
或/posts/123/comments/new
访问,但我不知道如何在索引视图中使用link_to来显示具体的注释,当我尝试链接它,出现“无路线”或“未定义的符号”。
我在模型中定义的帖子和评论与routes.rb
和post_comments GET /posts/:post_id/sensors(.:format)
comments#index
在我执
我怎么做?
答案 0 :(得分:12)
如果您已定义嵌套资源(当然您的模型Comment
和Post
已关联)
resources :posts do
resources :comments
end
您可以将评论链接为以下
<!-- /posts/:post_id/comments/:id -->
<%= link_to 'Show', [@comment.post, @comment] %>
答案 1 :(得分:7)
在尝试了所有的答案后,它并没有完全奏效,但我找到了解决问题的方法。 在第一时间,我使用了
post_comments_url(@后,评论)的
其中comment是@ post.each中的项目。
它会产生一条“奇怪”的路线。相反/喜欢“post / 34 / comments.2”,我使用单数形式修复它:
post_comment_url(@ post,comment)
感谢您的帮助!
答案 2 :(得分:1)
答案 3 :(得分:0)
除了toch的答案,你可以在Rails控制台的帮助下调试你的link_to调用。
为此,您需要在控制台中加载视图助手:
irb(main):001:0> include ActionView::Helpers::UrlHelper
=> Object
irb(main):002:0> helper.link_to "posts", app.posts_path
=> "<a href=\"/posts\">foo</a>"
另一个工具,类似于路由调试的Rake路由:https://github.com/schneems/sextant