获取所有在 Rails 中有一些汽车的品牌



>我有以下型号:品牌汽车

A Brand has_many Car
A Car belongs_to Brand

我如何获得至少拥有一辆车的所有品牌?

所有拥有至少一辆汽车的品牌:

Car.where('brand_id IS NOT NULL').joins(:brand).map(&:brand)

这只是抓取所有有品牌的汽车,在汽车上映射并仅返回品牌。联接部分使查询更快。

将联接添加到品牌会将 SQL INNER JOIN添加到查询:

Brand.joins(:cars)
=> SELECT "brands".* FROM "brands" INNER JOIN "cars" ON "cars"."brand_id" = "brands"."id"

然后只会检索有汽车的品牌。

最新更新