如何使用awesome_nested_set生成嵌套列表

时间:2010-12-08 04:53:43

标签: ruby-on-rails nested-sets

我在我的Rails项目中使用了awesome_nested_set插件。我正在尝试创建这样的嵌套无序列表,但我没有运气:

<ul>
    <li>Test 1</li>
    <li>
        Test 2
        <ul>
            <li>Test 2.1</li>
            <li>Test 2.2</li>
        </ul>
    </li>
    <li>
        Test 3
        <ul>
            <li>Test 3.1</li>
            <li>Test 3.2</li>
            <li>Test 3.3</li>
        </ul>       
    </li>       
</ul>

此外,我希望通过一个db查询来完成此操作。这里有类似的问题和一个公认的答案,但解决方案对我不起作用 How to render all records from a nested set into a real html tree

1 个答案:

答案 0 :(得分:2)

使用partial来渲染子项并使用children方法启动它们:

in:_tree.html.erb

<% content_tag :li, :id => dom_id(menu) do %>
  <span class="handle"><%= menu.title %></span>    
  <% content_tag :ul do %>
   <% for child in menu.children do %>
    <%= render :partial => "tree", :locals => {:menu => child }%>
   <% end %>
  <% end unless menu.leaf? %>
 <% end %>

in:show.html.erb

<%= render :partial => "tree", :locals => {:menu => @menu} %> 

将@menu替换为您的对象。