我有一个简单的产品和类别模型以及在产品类别树中建立存在的 product_category 模型。
产品总是被放置在最深的类别中。
它旨在调用
root_category = Category.find(1)
root_category.products
并且基本上得到所有分配了类别的产品。
root_category
发生的情况是,如果选择了该类别而不是使用该类别,我只能从其中一个后代类别中获取产品
category.self_and_descendants.includes(:products)
我怎样才能做到我所说category.products
的基本上是上述的?
== app/models/product.rb ==
class Product < ActiveRecord::Base
has_many :product_categories
has_many :categories, through: :product_categories
end
== app/models/product_category.rb ==
class ProductCategory < ActiveRecord::Base
belongs_to :product
belongs_to :category
end
== app/models/category.rb ==
class Category < ActiveRecord::Base
has_many :product_categories
has_many :products, through: :product_categories
end