拥有许多Rails祖先gem+has_many



我有两种型号: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>

相关内容

  • 没有找到相关文章

最新更新