我有两种型号:Post和Category
类别有许多帖子,
张贴分类,
类别模型使用祖先宝石,
目标是获得属于给定类别及其所有祖先的所有帖子。我应该简单地使用循环还是有更聪明的方法来实现这一点?
您可以使用它来获取属于给定category
或其祖先之一的帖子:
Post.where(:category_id => category.path_ids)
ancestry gem
在使用时传递嵌套的哈希对象,因此您可以选择一个主node
,然后使用该哈希对象作为迭代&获取其所有祖先:
#controller
@category = Category.find params[:id]
#view
render partial: "category", locals: { category: @category }
#partial
<ol class="categories">
<% category.each do |category, sub_item| %>
<li>
<%= category.name %>
<% if category.has_children? %>
<%= render partial: "category", locals: { category: category.children } %>
<% end %>
</li>
<% end %>
</ol>