我有两个模型
class User
has_many :cars
end
class Car
belongs_to :user
end
我可以做User.where(...)
并测试任何用户属性
如何测试关系的属性?例如,我想做'get all users where user.car.color = green'
?或'get all users which have more than two cars'
使用joins
:
User.joins(:cars).where('cars.color' => 'green')
第二个:
User.joins(:cars).group('users.id HAVING count(cars.id) > 2')
把它们放在一起:
User.joins(:cars)
.group('users.id HAVING count(cars.id) > 2')
.where('cars.color' => 'green')
参见:Rails 3查询关联条件's count
应该这样做:
User.include(:cars).where("cars.color" => "green")