Недавно начато с rails
вместе с драгоценным камнем ancestry
.Итерация в рубине с использованием инструкции if else ... (вдоль жемчуга родословной)
Я пытаюсь перебирать массив Category
объектов, которые хранятся в виде древовидной структуры с помощью ancestry
камня, чтобы отобразить кнопки, телеграфировало link_to
к других объектов категории, данная категория связана.
Первые 3 категории в базе данных - это корни, и поэтому в конечном итоге у меня не будет достаточно места для отображения кнопок для всех потомков. Итак, если category.parent == 'nil'
, я хотел бы отображать только дочерние объекты данной категории.
Однако для всех других объектов категории я хотел бы отобразить всех потомков данной категории.
я что-то вдоль этих линий думать, чтобы перебирать
<%= current_user.folders.each do |folder| %>
<% if folder.is_root? %>
<% folder.children.each do |child| %>
<%= link_to child, folder_path(child), class: 'btn' %>
<% end %>
<% else %>
<% folder.descendants.each do |desc| %>
<%= link_to desc, folder_path(desc), class: 'btn' %>
<% end %>
<% end %>
ли кто-нибудь сможет посоветовать?
Я пытаюсь использовать родословную для создания древовидной структуры ... – jmcgillion
Что я в основном сделал ... но мне сложно определить, как итерации на основе идентификатора заданного объекта категории ... tx для вашего ответа diego, это оценено ... – jmcgillion
Драгоценность 'ancestry' работает точно так, как я объяснил выше. Не уверен, что вы подразумеваете под «итерацией через идентификатор определенной категории». С идентификатором 'id' вы можете найти категорию' category = Category.find id', а затем родословная gem дает вам метод 'children'' category.children'. У этого есть куча методов для навигации по вашему дереву объектов https://github.com/stefankroes/ancestry#navigating-your-tree – DiegoSalazar