Rails - 连接多个表

时间:2014-01-13 03:56:52

标签: ruby-on-rails activerecord ruby-on-rails-4

我有以下型号:

class Company < ActiveRecord::Base
  has_many :price_movements
  has_many :goods_movements
end

class PriceMovement < ActiveRecord::Base
  belongs_to :company
end

class GoodsMovement < ActiveRecord::Base
   belongs_to :company
end

我试图以activerecord的形式将所有内容组合成一个sql,但我不知道如何去做,因为我对ROR相对较新。

select * from companies c

inner join price_movements p
on c.id = p.company_id

inner join goods_movements g
on c.id = g.company_id
and g.date = p.date

对我来说,关键问题是货物运输日期== price_movement日期的第二个链接。 有人可以建议是否有办法吗?

1 个答案:

答案 0 :(得分:19)

Company.joins(:price_movements,:goods_movements).where("goods_movement.date = price_movement.date")

浏览this link它详细解释了如何使用ActiveRecord