我正在开发一个类似于应用程序的小型博客,目前我正面临一个我无法解决的问题。
目前我有2个型号:
1.发布
2.评论
我已经可以毫无困难地管理我的帖子,但我的评论有些问题。我选择在我的帖子和评论模型之间建立关系has_many / belongs_to。当用户在帖子页面上时,我想显示与帖子相关的所有评论。我的erb看起来像这样:
#some code
#...
#...
#render the comments
<%= render :template => "comments/index", :locals => {:post_id => @post.id} %>
我的问题是我的CommentsController的方法索引永远不会被调用。我在索引方法中添加了一些put,它们永远不会显示在控制台中。
我应该使用其他标签来呈现视图吗?还有另一种方法吗?
提前感谢您的帮助。
答案 0 :(得分:0)
如果帖子视图是唯一显示评论的页面,则不必调用comments/index
来获取评论,只需在呈现帖子视图时显示评论,例如
在你的帖子视图中
#some code
#...
# render comments
<% @post.comments.each do |c| %>
<%= c.content%>
# ...
<% end %>
如果在许多视图中使用了注释,则将它们放在带有post
参数的部分
在app / views / partials / _comments.html.erb
中# render comments
<% post.comments.each do |c| %>
<%= c.content%>
# ...
<% end %>
并将此部分渲染到您要显示注释的位置:
#some code
#...
# render comments
<%= render partial: "partials/comments", locals: { post: @post } %>
使用comments/index
获取评论并在视图中显示它们更有可能是像Javascript / AJAX这样的技术动态加载页面部分。在这种情况下,comments/index
更可能是API调用(呈现JSON格式而不是html视图)。