簡體   English   中英

Rails,Spree:如何檢查產品是否屬於父類別

[英]Rails, Spree: How to check if a product belongs to a parent category

我瘋狂地具有以下結構:

  • 分類單元
    • 分類單元a.1
      • 分類單元a.1.1
        • 產品1
        • 產品2
        • 產品3

我需要知道是否有一種最佳方法來列出產品(包括父母)的所有分類單元。

謝謝!。

我在以下帖子中找到了一種很好的方法: 狂歡:分類單元之間的交集

將搜索范圍添加到產品模型:

add_search_scope :in_taxon do |taxon|
  Spree::Product.joins(:taxons).where(Taxon.table_name => { :id => taxon.id }).
  order("spree_products_taxons.position ASC")
end

然后:

Spree :: Product.all.in_taxon(Spree :: Taxon.find_by_name('Taxon a'))

將列出所提及分類單元內的所有產品。

如果要列出產品所屬的分類單元(我不清楚這是否是您想要的),一種選擇是利用Spree用於分層分類單元的acts_as_nested_set功能中的輔助方法。

product = Spree::Product.includes(:taxons).find_by(slug: 'gift-card')
product.taxons.map { |taxon| taxon.self_and_ancestors.map(&:name).join(' > ') }

=> ["Christmas Promotions > Last Minute > Gift Cards", "Digital Products > Gift Cards"]

看看嵌套集可用的所有方法,以獲取有關如何執行此操作和類似操作的其他想法: https : //github.com/collectiveidea/awesome_nested_set/wiki/Awesome-nested-set-cheat-sheet

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM