2014-11-22 53 views
1

我正在使用Rails 4.1和Ruby 2.1。如果一個用戶擁有多輛汽車,並且有一輛汽車has_many約會,我如何獲得所有用戶的約會?

用戶has_many汽車,和汽車has_many約會。獲取所有用戶預約的最簡單方法是什麼?

理想情況下,我想這樣做:user.cars.appointments,我知道我可以這樣做:

user.cars.each do |car| 
    appointments = [] 
    car.appointments.each do |app| 
    appointments >> app 
    end 
    return appointments 
end 

,但我希望有一個更快,更「Rails的」做的方式這個。謝謝!

回答

4

查看ActiveRecord中的has_many :through assocation

class User < ActiveRecord::Base 
    #... 
    has_many :cars 
    has_many :appointments, through: :cars 

end 

的你可以得到一個用戶的所有約見:

@user.appointments 

這將自動生成的INNER JOIN通過車臺的約會鏈接到用戶需要的SQL。

相關問題