2011-08-02 1 views
0

私は2つのモデルを持っています:ユーザとアクティビティ条件(サイズ)

5人以上のアクティビティを持つ管理者ではないすべてのユーザをカウントしたいと思います。私は管理者以外のユーザーになることができますが、レコードを数える前に計算/評価を事前に行う必要があります

ここまでは私がこれまで持っているものです。

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

は、しかし、私は唯一の5つの以上の活動をユーザーにしたいです。 Rubyでこのようなことを達成するにはどうすればよいですか?私は終わりにしても.sizeで単一の結果を期待していたときに感謝私のUserモデルがこの

has_many :activities, :through => :projects 

ように書き

はまた、配列が返されます。お知らせ下さい。

// Modsに - 私は3回目の質問を編集していますが、なぜアップデートはいつも削除されていますか?なぜコメントを投稿できないのですか? //

答えて

1

Userモデル:あなたは、ハッシュ注文してしまいます最後に.sizeを追加する場合

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

class User < ActiveRecord::Base 
    has_many :activities 
end 

が5つの以上の活動をすべて管理者以外のユーザーのリストを取得するにはユーザーあたりのカウンタ。

+0

@Gaelle質問を明確にしたい場合は、質問を編集するかコメントを追加してください。答えを編集しないでください。 – svick