我有一个具有以下型号的应用程序: - 类别 - 子类别 - 产品 - ProductSubcategory
我的关系如下:
Category has_many :subcategories
Subcategory belongs_to :category
Subcategory has_many :product_subcategories
Subcategory has_many :products, through: :product_subcategories
Product has_many :product_subcategories
Product has_many :subcategories, through: :product_subcategories
我想访问某个类别中的所有产品。什么是最好的方式?我尝试了类别has_many:product_subcategories,通过:: categories,但它没有用。无论如何我能做到吗?
编辑:在sql代码中,我的问题将通过这个SQL查询解决:
SELECT products.* FROM products
INNER JOIN product_subcategories
ON product_subcategories.product_id = products.id
INNER JOIN subcategories
ON product_subcategories.subcategory_id = subcategories.id
INNER JOIN categories
ON categories.id = subcategories.category_id
WHERE
categories.id = 1;
提前致谢:)
答案 0 :(得分:0)
您希望通过Subcategory
建立关系,即:
class Category < ActiveRecord::Base
has_many :products, through: :subcategories
end