构建树结构动态查看Ruby on rails

时间:2013-05-25 22:50:13

标签: ruby-on-rails

如何在View Ruby on rails上动态创建N级树结构?主要需要帮助构建逻辑以呈现树结构。

3 个答案:

答案 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