Rails 中的简单关联

Simple Association in Rails

我有两个模型。一辆driver和一辆汽车。 driver 可以拥有很多车。一辆汽车可以由许多 driver 人拥有。车型 has_many :drivers, through: :car_ownership。这行得通,一切都很好。

但我想 return 所有只有 driver 的汽车,像这样:

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

Car.first.drivers return 都是 collection 的 Active Record 模型 Driver.

我想你想要这样的东西(假设你的 car_ownerships table 有一个 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 })