Дерево меню с использованием предков в рельсах
В соответствии с этим ответом /questions/33185000/kak-sozdat-derevo-kategorij-ispolzuya-rodoslovnuyu-ruby-on-rails-3/33185014#33185014 я пытаюсь создать древовидное меню для моего приложения
этот ответ работает только для root
а также first children
, Я ищу предложение для преобразования этого кода, хорошо работать с n
детские.
<ul id="menu">
<% Hub.roots.each do |category| %>
<li> <%= link_to h(category.title), category %>
<% unless category.children.empty? %>
<ul id="sub-menu">
<% category.children.each do |subcategory| %>
<li><%= link_to h(subcategory.title), subcategory %></li>
<% end %>
</ul>
<% end %>
</li>
<% end %>
</ul>
1 ответ
<% Hub.roots.each do |category| %>
<div> <%= link_to h(category.title), category %>
<% if category.children.present? %>
<div id="submenu">
<%= render 'hubs/sub', category: category %>
</div>
<% end %>
</div>
<% end %>
частичный _sub
<ul>
<% category.children.each do |sub| %>
<li>
<%= link_to_unless_current sub.title, sub %>
<%= render 'hubs/sub', category: sub %>
</li>
<% end %>
</ul>
и CSS
#submenu > ul, ol {
margin-right: 20px;
li {
font-size: 11px;
margin: 4px 0;
margin-bottom:-5px !important;
}
ul, ol {
font-size: 11px;
margin: 0;
padding-left: 16px;
margin-bottom:-5px !important;
li {
margin: 4px 0;
}
}
}