Как использовать вычисления ActiveRecord с отношениями - PullRequest
0 голосов
/ 08 января 2012

Я пытаюсь создать панель администратора, которая отображает статистику, относящуюся к администратору сайта. Например, учитывая, что в компании много пользователей, определяется среднее количество пользователей в каждой компании или максимальное количество пользователей в компании.

Я нашел activerecord :: computing, который, кажется, выполняет большую часть того, что я хочу, но, насколько я могу судить, он не позволяет вам что-либо делать с отношениями. Как бы я нашел значения или средние, сгруппированные по отношениям?

1 Ответ

1 голос
/ 08 января 2012

Вы должны думать об этом с точки зрения пользователя.

Самый простой способ будет

# 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...