有没有人遇到过这个问题?
我有一组注释,我在视图中正常循环:
<% for comment in @post.comments %>
<%= comment.body %>
<% end %>
但我也有一个表单来添加注释,但似乎如果我在控制器中使用@ post.comments.build而不是Comment.new,那么它在循环中创建了一个'comment'的空白实例
我更愿意使用.build而不是.new 有没有遇到过这个?有黑客吗?
由于
答案 0 :(得分:1)
有趣的是你提到,我几天前遇到过这个。
我最终使用Model.new
,但您也可以在致电build
后尝试重新加载关联。
@post.comments(true)
会重新加载它。 (为了便于阅读,您也可以写@post.comments(:force_reload)
。)
重新加载的替代方法可能是调用关联的all
命名范围,因此@post.comments.all
。
我认为两者都会发出新的查询,但也许他们会点击查询缓存。
答案 1 :(得分:0)
@comments = @post.comments
@comment = @post.comments.build
我认为这样做。