我正在使用Rails 4.1和Ruby 2.1。
用户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”的方式来做到这一点。谢谢!
答案 0 :(得分:4)
查看ActiveRecord中的has_many :through assocation。
class User < ActiveRecord::Base
#...
has_many :cars
has_many :appointments, through: :cars
end
您可以通过以下方式获得用户的所有约会:
@user.appointments
这将自动构建通过cars表将约会链接到用户所需的INNER JOIN SQL。