Necesito obtener el número de registros en la página actual. Estoy usando will_paginate gem para paginación. Cuando intento obtener la colección.count ¿obtengo el número total de registros?

@collection = User.paginate(page: params[:page], per_page: 10).all

Cuando intento obtener el recuento de la colección, devuelve el total de entradas. Cómo obtener el recuento de registros de una tabla actual

3
Aarthi 28 feb. 2018 a las 17:55

5 respuestas

La mejor respuesta

Si necesita entradas totales en la consulta completa:

@collection.total_entries

Si necesita un recuento de entradas en la página actual:

@collection.size

Mientras tanto, no necesita llamar al último alcance .all en la paginación. Sólo inténtalo:

@collection = User.paginate(page: params[:page], per_page: 10)
1
Буянбат Чойжилсүрэн 28 feb. 2018 a las 15:46

Si desea el número actual de elementos en la página actual, debe hacer @collection.size. Si desea la cantidad total de elementos, debe hacer @collection.count

Puede intentar configurar page en la última página para ver la diferencia.

También uso

@collection = User.paginate(page: params[:page], per_page: 10)

Ya que la paginación devolverá solo el conjunto correspondiente, configurado con los parámetros page y per_page.

0
mmsilviu 28 feb. 2018 a las 21:31
@collection.entries

Te está dando las entradas en la página actual. Si, por ejemplo, paginas 25 entradas, mostrará las 25 entradas en una clase Array

0
DonMB 8 ago. 2019 a las 11:28

También quería encontrar el número de registros para la página actual. Pero @ survey.size no está devolviendo el número de registros en la página actual, en cambio, está devolviendo el número de registros si la página actual se ha llenado. Rails 5.2.2 ruby 2.5.1p57 (2018-03-29 revisión 63029) [x86_64-linux]

@collection.length 

Es el que proporciona el resultado necesario.

0
Adwaith R Krishna 9 ene. 2019 a las 07:17

Tratar:

@collection.total_entries
1
apneadiving 28 feb. 2018 a las 14:59