1

如何在 View Ruby on rails 中动态创建 N 级 Tree 结构?主要需要帮助构建逻辑来渲染树结构。

4

3 回答 3

1

这似乎有些过度设计。以下将在单个表中为您提供父子关系:

class Node < ActiveRecord::Base
  belongs_to :parent, :class_name => "Node"
  has_one :child, :class_name => "Node", :foreign_key => :parent_id
end
于 2013-05-26T00:14:29.900 回答
1

我使用了acts_as_tree ruby​​ gem,它在获取父节点和子节点时非常有用。

我创建了两个名为_parent.html.erb_child.html.erb 的部分

我递归地渲染如下。

_parent.html.erb

// root nodes - nodes having no parent

<%root_nodes.each do |root_node|%>
  <%= render :partial => "child", :object => root_node%>
<%end%>

_child.html.erb

// child nodes - nodes having parent

<%=child.name%>

child.children_nodes.each do |child_node|
  <%=render :partial => "child", :object => child_node %>
<%end%>
于 2013-06-26T09:12:31.290 回答
0

您正在访问node.name,但随后您检查是否node在下nil一行。node已经是什么时候了nilnode.name就要扔了NoMethodError

故事的寓意:编写测试以确保您的应用程序不会nil通过Recursion.traverse.

于 2013-05-25T23:00:48.373 回答