Rails中的简单关联

时间:2015-11-21 22:46:15

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

我有两个型号。司机和汽车。司机可以拥有很多车。一辆汽车可以由许多司机拥有。汽车模型has_many :drivers, through: :car_ownership。这很有效,一切都很好。

但是我想把所有只带司机的汽车归来,就像这样:

@cars = Car.where.not(drivers: nil)

Car.first.drivers返回所有Active Record Model Driver的集合。

1 个答案:

答案 0 :(得分:1)

我认为你想要这样的事情(假设你的car_ownerships表格有driver_id列):

Car.joins(:car_ownerships).where('car_ownerships.driver_id IS NOT NULL')

使用纯Active Record,此查询将是:

Car.joins(:car_ownerships).where.not(car_ownerships: { driver_id: nil })