33

Ruby on Rails で、街の雇用主を見つけたいです。モデルが次のように設定されているとしましょう。

City
has_many :suburbs
has_many :households, :through => suburbs
has_many :people, :through => suburbs

Suburb
has_many :households
has_many people, :through => households
belongs_to :city


Household
has_many :people
belongs_to :suburb

People
belongs_to :household
belongs_to :employer


Employer
has_many :people

ある種の雇用者が some_city.people に参加したいような気がしますが、これを行う方法がわかりません。人々が都市に直接属している場合、City_idが何かである人々にEmployerを結合できますが、直接結合せずに同じデータを見つけたいので、少し迷っています。

ありがとうございました。

4

2 に答える 2

46

ネストされた結合を使用する

Employer.joins({:people => {:household => {:suburb => :city}}}) 

探している結合テーブルが表示されます。反対方向に移動する場合は、複数形の名前を使用します

City.joins( :suburbs => {:households => {:people => :employers }})
于 2013-04-20T02:40:47.177 に答える