2012-05-04 15 views
16

Estoy iterando a través de una gran variedad de objetos modelo y necesito paginar por razones de rendimiento/memoria.Cómo obtener el recuento de páginas usando Kaminari

quiero hacer algo como esto:

for i in 1..Person.num_pages 
    Person.page(i).each do 
    # work 
    end 
end 

Obviamente, puede obtener el recuento y hacer los cálculos a mí mismo, pero no es un equivalente de NUM_PAGES? ¿O hay una forma más elegante de hacer esto por completo?

Respuesta

34

Sí, puede usar total_pages (o num_pages en la versión anterior a 0.14.0) para recuperar el número total de páginas en su modelo.

Por ejemplo:

@blog_entries = Blog.all.page(1).per(20) 
puts "total pages: #{@blog_entries.total_pages}" 
+5

'num_pages' ha cambiado de nombre a' total_pages' en la versión 0.14.0 ([cometer] (https://github.com/amatsuda/kaminari/commit/e79935c2d596e165be566f6d92eed8d5acd6a843)) – ciastek

+0

Si está utilizando el 'por' predeterminado, simplemente haga 'Blog.all.page (1) .total_pages' –

Cuestiones relacionadas