我有2个型号:帖子和类别
类别has_many帖子,
发布belongs_to类别,
类别模型使用ancestry gem,
目标是获取属于给定类别及其所有祖先的所有帖子。我应该简单地使用一个循环还是有一些更聪明的方法来做到这一点?
答案 0 :(得分:1)
您可以使用它来获取属于给定category
或其祖先之一的帖子:
Post.where(:category_id => category.path_ids)
答案 1 :(得分:1)
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>