查找具有特定属性的模型数量

时间:2016-10-19 09:14:33

标签: ruby-on-rails ruby orm

您好我的数据库中有一个模型用户,用户可以拥有零个,一个或多个汽车。我想用一个或多个汽车找到我数据库中的所有用户。目前我有逻辑说:

@car_user_count
for user in Users.all do

    if user.cars.count > 0 
        @car_user_count = @car_user_count + 1

end

这似乎是一种过于复杂的方式。我认为必须有办法做一些事情:

User.where(Cars.count > 0).all.count

但我似乎无法让它发挥作用,对此的任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:0)

  

我想在我的数据库中找到一个或多个汽车的所有用户。

User.includes(:cars).where.not(cars: { id: nil })

答案 1 :(得分:0)

对于您的示例,请使用joins

尝试count
User.joins(:cars).distinct.count
相关问题