Как мне считать записи, если условие (размер) - PullRequest
0 голосов
/ 02 августа 2011

У меня есть 2 модели: Пользователь и активность

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

Вот что у меня есть.

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

Однако я хочу только пользователей с более чем 5деятельность.Как мне добиться такого с Ruby?Спасибо

Моя модель User выглядит следующим образом

has_many :activities, :through => :projects

Также возвращается массив, когда я ожидаю один результат даже с .size в конце.Пожалуйста, посоветуйте.

// Модам - ​​я редактирую вопрос в третий раз, почему обновление все время удаляется?Почему я не могу оставить комментарий?//

1 Ответ

1 голос
/ 02 августа 2011

Модель пользователя:

class User < ActiveRecord::Base
  has_many :activities
end

Чтобы получить список всех пользователей без прав администратора с более чем 5 действиями:

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

Если вы добавите .size в конец, вы получитеполучить заказанный хеш со счетчиком на пользователя.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...