2010-12-08 70 views
2

我在Rails项目中使用了awesome_nested_set插件。我试图创建嵌套无序列表这样的,但我没有任何运气:如何用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> 

而且,我希望能与1分贝查询做到这一点。这里有一个类似的问题与接受的答案,但解决方案不适合我。
How to render all records from a nested set into a real html tree

回答

2

使用部分来呈现儿童和儿童的方法启动它:

在:_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 %> 

在:show.html.erb

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

将@menu替换为您的对象。

+3

是我还是这将要执行每个分支的数据库查询? – Papipo 2011-12-04 12:20:39