2016-01-25 70 views
2

查詢我有3種型號:如何使用雙belongs_to的關聯

事件,地點,位置

Event: 
    belongs_to :place 

Place: 
    belongs_to :location 

Location: 
    has_many :places 

我想找到的所有事件,其中地點的city屬性爲「紐約」。 Rails4和Postgres的最佳做法是什麼?

回答

1

嘗試

Event.joins(:place => :location).where("locations.city = ?", "New York") 
2

這應該做

Event.includes({ place: :locations }).where(locations: {city: 'New York'}).references(:locations) 
0

你想利用nested associations(第12.2.3節專)

Event.joins(places: :locations).where('locations.city = ?', 'New York') 
相關問題