当条件依赖于关系属性时,如何搜索模型



我有两个模型

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")

相关内容

  • 没有找到相关文章

最新更新