抛个砖,先序遍历二叉树。中间的部分自己可以自己适当修改下。
另外你也可以参考:https://github.com/the-teacher/the_sortable_tree/blob/master/app/helpers/render_expandable_tree_helper.rb
def my_awesome_nested_tag
comment_roots = Comment.roots
result = ""
comment_roots.each do |comment|
result << div_nested_tag(comment)
end
raw result
end
private
def div_nested_tag(comment_root)
result = ""
if comment_root.present?
result << "<div class='comment comment_#{comment_root.level}'> #{comment_root.content}"
#取出所有的子节点
dests = comment_root.children
dests.each do |dest|
result << div_nested_tag(dest)
end
result << "</div>\n"
end
result
end
之前有人也提到过,这个东西不适合做评论,对数据库的查询比较多。数据量大起来肯定就慢起来了。