@eldar_web

Как в Rails при запросе .group().count показывать только количество?

Subscriber.all.count => 7

Subscriber.group(:id).count => {12=>1, 13=>1}

Зачем при group мне выдает хэш, а не абсолютное количество???

Как решить?
  • Вопрос задан
  • 431 просмотр
Решения вопроса 1
А так?

Subscriber.count(:all, :group => 'id')
Ответ написан
Пригласить эксперта
Ответы на вопрос 4
premas
@premas
Full-stack web-developer
Что значит как решить? В коде
Subscriber.all.count => 7
возвращается абсолютное количество, а в коде
Subscriber.group(:id).count => {12=>1, 13=>1}
Сгрупированное по полю id.
Какой еще результат вы хотите увидеть?
Ответ написан
@thepry
Ruby on rails, 1С разработчик
Subscriber.group(:id).count => {12=>1, 13=>1}


В этом нет никакого смысла т.к. id у них, судя по всему, уникальный.

Зачем при group мне выдает хэш, а не абсолютное количество???


Затем, что group для этого и существует, чтобы группировать записи по одним полям, агрегируя другие.
Ответ написан
Комментировать
@vsuhachev
Вот поглядел на ответ про count с параметрами и стало интересно, чего я не знаю про count. Оказалось (в 4 рельсах) что
Subscriber.count(:all, :group => 'id')
достаточно бессмысленное выражение и эквивалентно Subscriber.count. Чтобы в этом убедится достаточно почитать сырцы, кстати в 5 рельсах второй параметр из count уже выпилили...
Ответ написан
Комментировать
Subscriber.pluck(:id)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы