2011-08-02 3 views
0

인 경우 레코드를 계산하려면 어떻게합니까? 사용자 및 작업조건 (크기)이

5 개 이상의 활동이있는 관리자가 아닌 모든 사용자를 계산하고 싶습니다. 나는 비 관리자 사용자를 얻을 수 있지만 기록을 계산하기 전에 계산/평가를 수행해야합니다.

여기까지 제가 지금까지 가지고있는 내용입니다.

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

그러나 나는 5 개 이상의 활동이있는 사용자 만 원합니다. Ruby로 어떻게 이런 일을 할 수 있습니까? 감사합니다

내 사용자 모델은 심지어 끝에 크기는 단일 결과를 예상 할 때 또한 배열이 반환이

has_many :activities, :through => :projects 

처럼 간다. 제발 조언.

// Mods에게 - 나는 세 번째 시간에 대한 질문을 편집하고 있는데 왜 항상 업데이트가 제거 되었습니까? 왜 댓글을 게시 할 수 없습니까? //

답변

1

사용자 모델 : 당신은 당신이 해시 주문 얻을 것이다 끝에 .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