即使我认为这是一个相当普遍的问题,我也无法找到回答这个问题的单一资源。
我有一个Comment
模型,可以与Resource
关联或拥有父级,这是另一个评论。从而允许嵌套注释。根评论始终与Resource
相关联。
我现在想要实现的是获取与Resource
关联的注释的哈希树,以便我可以有效地获取根注释,以及嵌套在根注释中的所有注释
我对树结构很新,但我相信我现在做的不是有效(性能明智),也不是使用树结构的正确方法。
resources_controller.rb
def show
@comments = @resource.comments.includes(:children)
end
资源/ show.html.erb
<%= comments_tree_for @comments %>
comments_helper.rb
def comments_tree_for(comments)
comments.map do |comment|
render(comment) +
(comment.children.size > 0 ? content_tag(:div, comments_tree_for(comment.children), class: 'replies') : nil)
end.join.html_safe
end
但是,如果我在控制台中运行Comment.hash_tree
,它将返回树。现在我想要实现的是一种在我当前的结构上实际使用hash_tree
的方法。