我有以下型号:品牌和汽车
A Brand has_many Car
A Car belongs_to Brand
我如何获得至少拥有一辆车的所有品牌?
拥有至少一辆车的所有品牌:
Car.where('brand_id IS NOT NULL').joins(:brand).map(&:brand)
这只是抓取所有具有品牌的汽车,映射汽车并仅返回品牌。连接部分使查询更快。
添加一个连接到 Brand 将添加一个 SQLINNER JOIN
到查询中:
Brand.joins(:cars)
=> SELECT "brands".* FROM "brands" INNER JOIN "cars" ON "cars"."brand_id" = "brands"."id"
然后只会检索带有汽车的品牌。