2012-01-07 2 views
0

사이트에 대한 관리자 관련 통계를 보여주는 관리 대시 보드를 만들려고합니다. 예를 들어 회사에 많은 사용자가있는 경우 회사 당 평균 사용자 수 또는 회사가 보유한 최대 사용자 수를 찾습니다.ActiveRecord 계산과 관계를 함께 사용하는 방법

나는 activerecord :: calculations를 발견했는데, 이것은 내가 원하는 것 대부분을하는 것처럼 보였지만, 내가 말할 수있는 한 그것은 당신이 관계로 무엇을 할 수는 없다. 관계로 그룹화 된 수 또는 평균을 찾는 방법에 대해 어떻게 생각합니까?

답변

1

귀하는 사용자 측면에서 생각해야합니다.

가장 간단한 방법은

# get a hash of company_ids and user counts 
User.group(:company_id).count 

이 될 것입니다하지만 당신은 회사를로드하고 그들을 일치해야합니다.

그럼 당신은 시도하고,

user_counts = User.group(:company_id).count 

company_users = Company.all.map{|company| user_counts[company.id]} 

# the maximum 
company_users.max 

# the average 
company_users.sum.to_f/company_users.length 
+0

이 완벽하게 일을 감사 할 수있는! –

관련 문제