如何在View Ruby on rails上动态创建N级树结构?主要需要帮助构建逻辑以呈现树结构。
答案 0 :(得分:1)
这似乎有点过分。以下将给你父母&单个表中的子关系:
class Node < ActiveRecord::Base
belongs_to :parent, :class_name => "Node"
has_one :child, :class_name => "Node", :foreign_key => :parent_id
end
答案 1 :(得分: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%>
答案 2 :(得分:0)
您正在访问node.name
,但在下一行中检查node
是否为nil
。当node
已经nil
时,node.name
会抛出NoMethodError
。
故事的道德:编写测试以确保您的应用程序未将nil
传递给Recursion.traverse
。