【问题标题】:Recursively rendering the same partial in rails crashes the app在 rails 中递归渲染相同的部分会使应用程序崩溃
【发布时间】:2019-04-02 23:01:39
【问题描述】:

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

这是index.html.erb

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

这是_branch.html.erb

    <%= @head.name%>

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

我在这里做错了什么?

【问题讨论】:

  • 每次渲染该部分时,都会循环通过@head.children,这确实是一个永无止境的循环。
  • 只需将@head 更改为head
  • 谢谢,就是这样。

标签: ruby-on-rails ruby


【解决方案1】:

你想渲染每个分支,而不是一遍又一遍的@head

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

那么部分看起来是这样的:

<%= branch.name %>

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-16
    • 2020-08-03
    • 1970-01-01
    • 2014-05-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多