我有一个产品列表和一个类别列表。我还有一个映射表product_categories
,它告诉产品属于不同的类别,并且类别有很多产品。这里的类别列表是由admin定义的。类别的数量是固定的,但可以变化。现在我需要获取与类别映射的产品列表
product.rb
has_many :product_categories, dependent: :destroy
has_many :categories, through: :product_categories
category.rb
has_many :product_categories
has_many :products, :through => :product_categories
product_category.rb
belongs_to :product
belongs_to :category
我将代码编写为:
ProductCategory.joins(:category).map(&:category).uniq
有什么办法可以简化这一行吗?
最佳答案
要获取包含产品的类别列表,您可以使用 SQL inner join
,这是 Rails 中的默认设置。
Category.joins(:product_categories).distinct
关于ruby-on-rails - 需要简单的 Rails 多对多关联逻辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40282439/