Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Rails - Joining multiple tables

I have the following models:

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

I am trying to join everything together into an sql in the form of activerecord, but I'm not sure how to go about doing it because I'm relatively new to 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

The key problem for me is the second link where goods_movement date == price_movement date. Can someone advice on whether there's any way to do it?

like image 595
mingsheng Avatar asked Jan 13 '14 03:01

mingsheng


1 Answers

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

Go through this link it has detailed explanation of how to use ActiveRecord

like image 147
Siva Avatar answered Oct 14 '22 00:10

Siva