0
我使用祖先和全球化寶石作爲我的類別,任何類別都可以有與之相關的產品。祖先 - 顯示樹中至少有一個類別有產品的類別
我想要做的是顯示整個樹的類別(使用特定語言,如果存在),其中樹中至少有一個類別包含產品(不僅是產品所在的類別)。
到目前爲止,我有以下代碼,它幾乎可以滿足我需要,但它只是過濾產品所在的類別,但我需要獲取整個樹(從根到底)。
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')
任何想法如何實現這一目標? 謝謝你,米羅斯拉夫
解決方案
我終於找到了一種方法如何從對方去做。在我看來,迭代根類別之前,我呈現整個類別樹,我驗證樹中至少有一個類別包含產品,然後呈現類別,否則不是。
<% if Category.find(root['id']).subtree.joins(:products).group("categories.id").having("count(products.id) > ?",0).length > 0 %>
個人推薦;你會更好地使用'acts_as_tree' –