Agrupar y contar en Rails
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?
Aceptado
Puedes hacerlo count
en line_items
el cual te devolverá un hash ordenado de device_id
y count
.
@project.line_items.group(:device_id).count
hash de devise_id como clave y recuento de registros asociados
@project.line_items.group(:device_id).count
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'