2
想象一下,你有三種型號達到與第二的has_many等級聯合
Class Garage
has_many :drivers
end
Class Driver
belongs_to :garage
has_many :cars
end
Class Car
belongs_to :driver
end
這一切都很好。
現在,如果我想補充Garage
和Car
之間的關聯has_many
這樣我可以直接garage.cars
做不增加新garage_id
關鍵Car
模式?
我目前使用的Garage
模型中定義的cars
功能:
def cars
drivers.map{ |driver| driver.cars }.flatten
end
但這個函數返回一個數組,而不是一個代理,只是不盡如人意,所以我不能使用命名範圍對返回汽車。 再加上它是次優查詢。
謝謝你的幫助。
好吧,我覺得愚蠢我雖然這僅是爲多對多關聯,謝謝。 –
如果有兩個以上的級別會怎樣? –
「這可以是任何其他類型的關聯,包括其他:通過關聯」,所以只需添加另一個'has_many:something,:through =>:cars'。 –