メンバーテーブルがあるとすると:
id membername
-------------------
1 Fred
2 Dave
3 Jenny
とジョブテーブル
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でこれを行うことはできますが、このデータを取得するためのより適切な方法があるかどうか疑問に思っていました。