我有 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'
我有 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'
使用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 根据关联计数进行查询
像这样的东西应该工作:
User.include(:cars).where("cars.color" => "green")