Agrupar y contar en Rails

Resuelto tladuke asked hace 14 años • 7 respuestas

Sé que he visto esto antes pero no puedo encontrar nada ahora. Quiero agrupar una consulta por una determinada columna y poder mostrar cuántas hay en cada grupo. Ya tengo la primera parte abajo:

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

Esto es para mi vista de índice de líneas de pedido, que es solo una tabla que muestra las líneas de pedido. ¿Cómo puedo crear una columna en esa tabla para "recuento" ahora que las líneas de pedido están agrupadas por dispositivo?

tladuke avatar Jan 08 '10 00:01 tladuke
Aceptado

Puedes hacerlo counten line_itemsel cual te devolverá un hash ordenado de device_idy count.

@project.line_items.group(:device_id).count
Chandra Patni avatar Jan 07 '2010 17:01 Chandra Patni

hash de devise_id como clave y recuento de registros asociados

@project.line_items.group(:device_id).count
Sandip Ransing avatar Feb 25 '2012 19:02 Sandip Ransing

Creo que puedes probar esto también.

@project.line_items.group(:device_id).pluck("device_id, count(device_id)")

^^ Esto proporciona una serie de matrices con elementos 'device_id y count'

bluefoggy avatar Feb 12 '2018 08:02 bluefoggy