Hi All,
I am trying to configure my models to generate sql like this:
select * from location inner join sales inner join product inner join calendar
Currently the models all have this:
class Location... has_many :sales :foreign_key => "location_id" has_many :products :through => :sales has_many :calendars :through => :sales
class Product... has_many :sales :foreign_key => "product_id" has_many :calendars :through => :sales has_many :locations :through => :sales
class Calendar... has_many :sales :foreign_key => "calendar_id" has_many :products :through => :sales has_many :locations :through => :sales
class Sales... belongs_to :calendar belongs_to :product belongs_to :location
In my controller I have this:
Location.find ( :all, :select => "calendar.year, location.country, product.name, sales.amount" :joins => [:products, :calendars] )
The issue is I get sql like this where the sales table appears twice (re-written for brevatiy)
select * from location inner join sales inner join product inner join sales_calendar inner join calendar on sales_calendar.. = calendar....
What must I change to only get the sales table there once i.e.
select * from location inner join sales inner join product inner join calendar
Thanks