我正在使用续集ORM。我有三个表,'类别','商家','产品'。
以下是模型:
class Product < Sequel::Model
many_to_one :merchants
end
class Merchant < Sequel::Model
many_to_one :category
end
我需要获取特定类别的产品。我该怎么做呢?
如果我需要特定商家的产品,我可以很容易地做到:
@merchant = Merchant.first(:id=>1)
@merchant.products.each do |s|
...
end
但是,如果该类别与商家和商家相关,则如何将产品纳入类别?
答案 0 :(得分:3)
这是一种方式:
Product.
select_all(:products).
association_join(:merchant).
where(:category_id=>category.id)
但是添加关联可能最简单:
Category.many_to_many :products,
:join_table=>:merchants,
:right_key=>:id,
:right_primary_key=>:merchant_id
category.products
答案 1 :(得分:0)
获取一个类别,遍历属于该类别的商家,并将此商家的产品推送/附加到阵列:
products = []
category = Category.find(:id=>1)
category.merchants.each do |m|
p<<m.products
end