Подтвердить что ты не робот

Группа и счет в Rails

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

@line_items = @project.line_items.all(:group => "device_id")  

Это для моего индексного представления позиции, который является только таблицей, отображающей позиции. Как сделать столбец в этой таблице для "подсчета" теперь, когда позиции группируются устройством?

4b9b3361

Ответ 1

Вы можете сделать count на line_items, который вернет вам упорядоченный хэш device_id и count.

@project.line_items.group(:device_id).count

Ответ 2

hash из devise_id как количество ключей и связанных записей

@project.line_items.group(:devise_id).count

Ответ 3

Просто добавьте параметр :select:

@line_items = @project.line_items.all(
  :group  => "device_id",
  :select => "device_id, COUNT(*) as count"
)

Тогда каждый @line_item будет иметь атрибут count.

Ответ 4

что-то вроде

 User.all(:joins => :comments, :select => "users.*, count(comments.id) as comments_count", :group => "users.id")

также может работать...

Ответ 6

Только для count pluck будет быстрее, чем group

@project.line_items.pluck(:device_id).count


@project.line_items.pluck(:device_id).uniq.count