How to get page count using Kaminari
Asked Answered
O

1

19

I am iterating through a large array of model objects and need to paginate for performance/memory reasons.

I want to do something like this:

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

Obviously I can get the count and do the math myself, but is there an equivalent of num_pages? Or is there a more elegant way of doing this altogether?

Oletaoletha answered 4/5, 2012 at 13:18 Comment(0)
I
42

Use total_pages.

Yes, you can use total_pages to retrieve the total number of pages in your model.

For example:

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

Version < 0.14.0

Previous to version 0.14.0, the method was called num_pages instead of total_pages.

Isocracy answered 16/6, 2012 at 19:14 Comment(3)
num_pages has been renamed to total_pages in version 0.14.0 (commit)Knownothing
If you are using the default per, just do Blog.all.page(1).total_pagesMarasco
Doc "Module: Kaminari::PageScopeMethods": rubydoc.info/github/amatsuda/kaminari/master/Kaminari/…Retinoscope

© 2022 - 2024 — McMap. All rights reserved.