首页 > 解决方案 > 在 Rails 中递归渲染相同的部分会使应用程序崩溃

问题描述

我试图通过每次使用不同的节点递归调用相同的部分来渲染节点树。但不知何故,它会无限次地用根节点调用部分,直到应用程序崩溃。

这是index.html.erb

    <%= render(partial: "branch", head: @head)%>

这是_branch.html.erb

    <%= @head.name%>

    <%@head.children.each do |child|%>
        <%= render( partial: "branch", head: child)%>
    <%end%>

我在这里做错了什么?

标签: ruby-on-railsruby

解决方案


您要渲染每个分支,而不是@head一遍又一遍:

<%= render(partial: "branch", object: @head) %>

然后部分看起来像这样:

<%= branch.name %>

<% branch.children.each do |child|%>
    <%= render( partial: "branch", head: child)%>
<% end %>

部分的名称是表示内容的变量的名称。


推荐阅读