首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Ar多重连接

Ar多重连接
EN

Stack Overflow用户
提问于 2014-03-12 11:58:33
回答 1查看 29关注 0票数 0

我有以下几种型号:

代码语言:javascript
复制
class Distributor < ActiveRecord::Base
  has_many :products
end

class Producer < ActiveRecord::Base
   has_many :products
end

class Product < ActiveRecord::Base
  has_one :favorite
  belongs_to :producer
  belongs_to :distributor
end

class Favorite < ActiveRecord::Base
  belongs_to :product
end

class User < ActiveRecord::Base
  has_many :favorites
end

我想构建一个AR表达式,它类似于sql查询:

代码语言:javascript
复制
select *
from `favorites`
inner join `products` on `products`.`id` = `favorites`.`product_id`
inner join `producers` on `producers`.`id` = `products`.`producer_id`
inner join `distributors` on `distributors`.`id` = `products`.`distributor_id`
where `favorites`.`user_id` = 1
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-12 12:54:17

您可以使用一组嵌套的joins方法,如下所示:

代码语言:javascript
复制
Favorite.joins(:product => [:producer , :distributor]).where("favorites.user_id = 1")

请注意,我使用的是=>表示法,但您也可以使用ruby 1.9+ 1。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22350815

复制
相关文章

相似问题

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