我使用祖先和全球化我的类别的宝石,任何类别都可以有与之相关的产品。
我想要做的是显示整个树类别(使用特定语言,如果存在),其中该树中至少有一个类别包含产品(不仅仅是产品所在的类别)。
到目前为止,我有以下代码,几乎可以满足我的需求,但它只是过滤产品所在的类别,但我需要获取整个树(从根到底)。
Category.includes(:translations, category_maps: [:products]).where(category_translations: {:locale => I18n.locale.to_s} ).group("categories.id, category_maps.id, category_translations.id, products.id").having("count(products.id) > ?",0).arrange_serializable(:order => 'category_translations.name')
知道怎么做到这一点? 谢谢Miroslav
我终于找到了另一种方法。在我看来迭代根类别的地方,在渲染整个类别树之前,我验证树中至少有一个类别包含产品,然后渲染类别,否则不会。
<% if Category.find(root['id']).subtree.joins(:products).group("categories.id").having("count(products.id) > ?",0).length > 0 %>
答案 0 :(得分:0)
我终于找到了另一种方法。在我看来迭代根类别的地方,在我渲染整个类别树之前,我验证树中至少有一个类别包含产品,然后渲染类别,否则不会。
<% if Category.find(root['id']).subtree.joins(:products).group("categories.id").having("count(products.id) > ?",0).length > 0 %>