5

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

任何建议表示赞赏。

谢谢。

4

3 回答 3

4

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

_your_model.html.erb

<li>
  <%= your_model.name %>

  <% unless your_model.children.empty? %>
    <ul>
      <%= render your_model.children %>
    </ul>
  <% end %>
</li>

接下来编辑您的视图,以便呈现第一个根节点:

<ul>
  <% YourModel.roots.each do |node| %>
    <%= render node %>
  <% end %>
</ul>
于 2010-01-14T21:08:16.637 回答
4

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

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

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

于 2011-11-01T23:02:11.017 回答
0

您可以通过一个查询获得整个集合:Category.order("lft ASC")

如果你有:depth专栏,瞧!一个查询,只需编写您的视图以使用 :depth。

于 2010-12-28T00:23:20.220 回答