Как генерировать вложенные списки с помощью awesome_nested_set - PullRequest
2 голосов
/ 08 декабря 2010

Я использую плагин awesome_nested_set в своем проекте Rails. Я пытаюсь создать вложенные неупорядоченные списки, как это, но мне не повезло:

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

Кроме того, я надеялся сделать это с помощью одного запроса БД. Здесь есть похожий вопрос с принятым ответом, но решение не работает для меня.
Как преобразовать все записи из вложенного набора в реальное HTML-дерево

1 Ответ

2 голосов
/ 05 января 2011

Используйте партиал для рендеринга потомков и начните его методами потомков:

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 вашим объектом.

...