如果用户拥有多辆汽车,并且汽车有多人约会,我如何才能获得所有用户约会?

时间:2014-11-22 01:36:32

标签: ruby-on-rails ruby rails-activerecord

我正在使用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”的方式来做到这一点。谢谢!

1 个答案:

答案 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。