Ruby on Rails – 令人敬畏的嵌套集插件

使用此插件时是否有一种简单的方法来显示整个嵌套集? 我想要做的是显示一个无序的根节点列表,其中每个子节点中的另一个无序列表也包含子节点等等?

任何建议表示赞赏

谢谢。

有几种方法可以做到这一点。 最简单的方法是从根开始并解析每个节点及其子节点。 我要做的第一件事是为节点标记做一个部分:

_your_model.html.erb

  • <%= your_model.name %> <% unless your_model.children.empty? %>
      <%= render your_model.children %>
    <% end %>
  • 接下来编辑视图,以便渲染第一个根节点:

     
      <% YourModel.roots.each do |node| %> <%= render node %> <% end %>

    使用your_model.children每次遇到数据库时都需要再次命中,这是不可取的。

    我创建了一个帮助程序,它有助于生成嵌套的ul和li标记,只有一个数据库命中。 您可以根据自己的需要修改此帮助程序:

    https://github.com/collectiveidea/awesome_nested_set/wiki/How-to-generate-nested-unordered-list-tags-with-one-DB-hit

    您可以使用一个查询获取整个集: Category.order("lft ASC")

    如果你有:depth列,瞧! 一个查询全部,只需编写您的视图使用:深度。