2015-12-07 170 views
0

我有一個Rails應用程序中,我有三個型號活動記錄查詢雙許多一對多的關係

1)公司

2)汽車

3)位置

我的三種車型之間的關係是,公司有很多汽車,每輛車有很多地點:

class Company < ActiveRecord::Base  
    has_many :cars  
end 

class Car < ActiveRecord::Base  
    belongs_to :company 
    has_many :locations  
end 

class Location < ActiveRecord::Base 
    belongs_to :car 
end 

現在我想要寫兩個ActiveRecord的查詢

1)爲了得到一個特定公司的所有汽車的所有位置中的一個變量

2)爲了得到一個特定的所有賽車的最後位置公司在一個單一的變量

任何人都可以幫我寫這些查詢。提前

感謝

+0

我會做一些事情,比如'Company.with_name(「BLABLA有限公司」)。汽車特定公司的所有汽車的最後位置.all_locations'後我創建了一些[範圍](http://guides.rubyonrails.org/active_record_querying.html#scopes)。 – radubogdan

+0

你能幫我寫下這個範圍嗎? –

+0

不是。我不知道你的表格列。我之前評論中發送給您的鏈接是一個很好的開始。 – radubogdan

回答

1

class Company < ActiveRecord::Base  
    has_many :cars  
end 

class Car < ActiveRecord::Base  
    belongs_to :company 
    has_many :locations  
end 

class Location < ActiveRecord::Base 
    belongs_to :car 
end 

class Company < ActiveRecord::Base  
    has_many :cars 
    has_many :locations, through: :cars  
end 

class Car < ActiveRecord::Base  
    belongs_to :company 
    has_many :locations  
end 

class Location < ActiveRecord::Base 
    belongs_to :car 
end 

1)爲了得到一個特定公司的所有汽車的所有位置中的一個變量

Company.where({...}).first.locations,或與您的示波器 Company.with_name("Blabla Gmbh").locations

2)要獲得一個變量

Company.with_name("Blabla Gmbh").locations.last