如果条件(大小)我如何计算记录

时间:2011-08-02 05:00:53

标签: mysql ruby-on-rails-3 activerecord count

我有2个模型:用户和活动

我想要计算所有超过5项活动的非管理员用户。我可以得到非管理员用户,但我需要在计算记录之前进行一些计算/评估

这是我到目前为止所拥有的。

a=User.where(:admin => false)
a.joins(:activities).size

但是我只想要有超过5项活动的用户。我如何用Ruby完成这样的事情?感谢

我的用户模型就像这样

has_many :activities, :through => :projects

当我期望单个结果时,即使最后使用.size,也会返回一个数组。请指教。

//对Mods - 我正在编辑问题第三次为什么更新一直被删除?为什么我也不发表评论? //

1 个答案:

答案 0 :(得分:1)

用户模型:

class User < ActiveRecord::Base
  has_many :activities
end

获取超过5项活动的所有非管理员用户的列表:

users = User.where(:admin => false).joins(:activities).group('"activities"."user_id"').having('COUNT(activities.id) > 5')

如果您将.size添加到最后,您将获得每个用户的计数器哈希值。