想象一下,你有三个模特
Class Garage
has_many :drivers
end
Class Driver
belongs_to :garage
has_many :cars
end
Class Car
belongs_to :driver
end
这一切都很好。
现在,如果我想在has_many
和Garage
之间添加Car
关联,以便我可以直接garage.cars
而无需添加新的garage_id
密钥到Car
模型?
我目前正在使用cars
模型中定义的Garage
函数:
def cars
drivers.map{ |driver| driver.cars }.flatten
end
但这并不令人满意,因为此函数返回一个数组而不是一个代理,因此我不能在返回的汽车上使用命名范围。 此外,它在查询方面是次优的。
感谢您的帮助。