0
我試圖製作一個管理員儀表板,顯示管理員相關的網站統計信息。例如,考慮到公司有許多用戶,需要查找每家公司的平均用戶數量或公司擁有的最大用戶數量。如何在關係中使用ActiveRecord計算
我發現activerecord :: calculation,這似乎是我想要的大部分,但據我所知,它不會讓你對關係做任何事情。我將如何去尋找按關係分組的數量或平均數?
我試圖製作一個管理員儀表板,顯示管理員相關的網站統計信息。例如,考慮到公司有許多用戶,需要查找每家公司的平均用戶數量或公司擁有的最大用戶數量。如何在關係中使用ActiveRecord計算
我發現activerecord :: calculation,這似乎是我想要的大部分,但據我所知,它不會讓你對關係做任何事情。我將如何去尋找按關係分組的數量或平均數?
你必須根據用戶來考慮它。
最簡單的方法是
# 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
這完美地工作,謝謝! – 2012-01-09 20:48:59