我正在使用 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”的方式来做到这一点。谢谢!
最佳答案
看看 has_many :through assocation在 ActiveRecord 中。
class User < ActiveRecord::Base
#...
has_many :cars
has_many :appointments, through: :cars
end
您可以获得用户的所有约会:
@user.appointments
这将自动构建通过 cars 表将约会链接到用户所需的 INNER JOIN SQL。
关于ruby-on-rails - 如果一个用户 has_many cars,一辆车 has_many appointments,我怎样才能得到所有用户的约会?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27073094/