首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Ruby的Sequel ORM中执行多个连接

问如何在Ruby的Sequel ORM中执行多个连接
EN

Stack Overflow用户
提问于 2016-07-26 09:49:12
回答 2查看 410关注 0票数 0

我使用的是续集ORM。我有三个表,‘类别’,‘商家’,‘产品’。

以下是模型:

代码语言:javascript
复制
class Product < Sequel::Model
    many_to_one :merchants
end

class Merchant < Sequel::Model
    many_to_one :category
end

我需要获取特定类别的产品。我如何为它做一个连接呢?

如果我需要特定商家的产品,我可以很容易地做到:

代码语言:javascript
复制
@merchant = Merchant.first(:id=>1)
@merchant.products.each do |s|
...
end

但是,当类别与商家相关,商家与products表相关时,如何获取类别中的产品?

EN

回答 2

Stack Overflow用户

发布于 2016-07-27 00:20:01

这里有一种方法:

代码语言:javascript
复制
Product.
  select_all(:products).
  association_join(:merchant).
  where(:category_id=>category.id)

但是添加一个关联可能是最简单的方法:

代码语言:javascript
复制
Category.many_to_many :products,
  :join_table=>:merchants,
  :right_key=>:id,
  :right_primary_key=>:merchant_id

category.products
票数 3
EN

Stack Overflow用户

发布于 2016-07-26 15:01:20

获取一个类别,遍历属于该类别的商家,并将该商家的产品推入/附加到一个数组中:

代码语言:javascript
复制
products = []
category = Category.find(:id=>1)
category.merchants.each do |m|
  p<<m.products
end
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38579902

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档