web-dev-qa-db-ja.com

Rails-複数のテーブルの結合

私は次のモデルを持っています:

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

私にとって重要な問題は、goods_movement date == price_movement dateの2番目のリンクです。誰かがそれを行う方法があるかどうかについてアドバイスできますか?

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

このリンク を通過します。ActiveRecordの使用方法の詳細な説明があります。

22
shiva