【发布时间】:2019-04-25 11:46:39
【问题描述】:
我正在构建一个类似于 reddit 的嵌套评论系统,其中 cmets 嵌套在另一个评论下,并且具有几乎无限的深度。
评论模型使用自引用 id。
我有一个名为 comment 的局部视图,它呈现单个评论,我正在尝试使用递归函数逐个绘制每个评论。
查看
<% comments.where(parent_id: nil).each do |parent| %>
<!-- render root node -->
<%= render partial: "comment", locals: { comment: parent } %>
<!-- recursively render child nodes -->
<%= render_children(parent.id) %>
<% end %>
帮手
def render_children(id)
Comment.where(parent_id: id).each do |comment|
render partial: "comment", locals: { comment: comment }
render_children(comment.id)
end
end
这不起作用,因为助手不能多次调用 render,我也尝试在我的视图中定义一个函数,但它似乎也不喜欢。
我想知道我是否以错误的方式处理这个问题。
使用递归函数的正确方法是什么,以便我可以在 Rails 视图中呈现树结构?
【问题讨论】:
标签: ruby-on-rails