我有两个型号。司机和汽车。司机可以拥有很多车。一辆汽车可以由许多司机拥有。汽车模型has_many :drivers, through: :car_ownership
。这很有效,一切都很好。
但是我想把所有只带司机的汽车归来,就像这样:
@cars = Car.where.not(drivers: nil)
Car.first.drivers
返回所有Active Record Model Driver的集合。
答案 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 })