2016-09-21 91 views
0

我想查詢哪裏我得到所有與類D,具有特定名稱(類D具有名稱列)的關係的類。但也有類B和C之間,實際上我不知道如何處理與連接和合並。通過多重關係查詢ActiveRecord

的關係如下:

class Appointment 
has_many :booked_classes 
has_many :classes, through: :booked_classes 
end 

class BookedClass 
belongs_to :Appointment 
belongs_to :Class 
end 

class Class 
belongs_to :Teacher 
has_many: BookedClasses 
end 

class Teacher 
has_many :Appointmentss, through :Clasesses 
has_many :Classes 
end 
+0

用戶'包括'方法 –

回答

0

你可以試試這個:

Appointment.joins(classes: [:teacher]).where(teachers: { name: "your_name" }) #"your_name" is the name to be matched with the value in name column of Ds table 
+0

好吧,我真的在activerecord不好:)因此,我得到:'#<#>:0x3ff243b11834>'我不確定如果我使用適當的多元化。我應該使用clases或符號的名稱? – user2576342

+0

'A','C'和'D'是模型類名稱的佔位符。您可以使用'to_sql'方法在您的'rails console'中嘗試驗證生成的SQL。 – dp7

+0

'SELECT'a's「。* FROM」a's「INNER JOIN」b「ON」b's「。」a_id「=」a's「。」id「INNER JOIN」c「ON」c's「。」id「=」 。「c_id」AND「c's」。「deleted_at」IS NULL INNER JOIN「ds」ON「ds」。「id」=「c's」。「d_id」WHERE「D」。「name」='test'' 但我只是得到這個奇怪的對象,而不是集合作爲 – user2576342