我是 ruby on rails 的新手,我需要建立一个 Post/Comment 关系,带有嵌套的评论,就像作者可以互相回复一样。
变成这样:
帖子/comments.html:
<% @post.comments.roots.each do |c| %>
<%= nested_messages c.subtree.arrange(:order => :created_at) %>
<% end %>
这工作得很好,但显然需要大量查询来渲染一棵树,比如N+1,其中N是comments.root.count
。
感谢帮助!
UPD: 带有 .includes() 的解决方案不适用于我的情况,但我不能 100% 确定我做的所有事情都是正确的......
对我有用的解决方案非常明显 - 通过指定 post_id 自行安排评论:
<%= nested_messages Comment.where('post_id = ?', @post.id).arrange(:order => :created_at) %>