Rails通过关联进行分组和计数

时间:2012-05-20 10:16:01

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

鉴于我有一张会员表:

id   membername
-------------------
1    Fred
2    Dave
3    Jenny

和一个Jobs表

id   member_id   status
1    1           Closed
2    2           Pending
3    2           Open
4    3           Pending
5    3           Pending

我想按成员输出待处理作业的总数。

因此,根据以上数据,我想:

membername  count
Dave        1
Jenny       2

我可以使用组方法获取计数,例如

Job.where("status = ?", "Pending").group(:member_id).count

但这不会返回名称。只是一个member_id的哈希和计数。我想我需要以某种方式将这个结果加入到成员表中。我当然可以使用原始SQL做到这一点,但是想知道是否有更简洁的方法来获取这些数据。

1 个答案:

答案 0 :(得分:5)

Job.where("status = ?", "Pending").joins(:member).group("member.name").count