我有2个模型:用户和活动
我想算出所有超过5个活动的非管理员用户。我可以得到非管理员用户,但是我需要在计算记录前进行一些计算/评估
到目前为止,这就是我所拥有的。
a=User.where(:admin => false)
a.joins(:activities).size
但是,我只希望用户进行5次以上的活动。如何使用Ruby完成此类任务?谢谢
我的用户模型是这样的
has_many :activities, :through => :projects
当我期望单个结果(即使最后是.size)时,也会返回一个数组。请指教。
//对于Mods-我是第3次编辑问题,为什么总是将更新删除?为什么我也不能发表评论? //
最佳答案
用户模型:
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
添加到末尾,您将获得每个用户带计数器的有序哈希。