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

时间:2013-11-11 22:49:59

标签: ruby-on-rails

我有以下型号:品牌汽车

A Brand has_many Car
A Car belongs_to Brand

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

2 个答案:

答案 0 :(得分:0)

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

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

这只是抓住所有拥有品牌的汽车,映射汽车并仅返回品牌。连接部分使查询更快。

答案 1 :(得分:0)

向品牌添加联接会向查询添加SQL INNER JOIN

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

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