我有2个模特
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'
答案 0 :(得分:2)
使用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')
答案 1 :(得分:1)
这样的事情应该有效:
User.include(:cars).where("cars.color" => "green")