2012-05-04 36 views
16

Tôi đang lặp qua một mảng lớn các đối tượng mô hình và cần phải phân trang vì lý do hiệu suất/bộ nhớ.Cách lấy số trang bằng cách sử dụng Kaminari

tôi muốn làm một cái gì đó như thế này:

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

Rõ ràng tôi có thể lấy số liệu và làm toán bản thân mình, nhưng có một tương đương với NUM_PAGES? Hoặc có một cách thanh lịch hơn để làm điều này hoàn toàn?

Trả lời

34

Có, Bạn có thể sử dụng total_pages (hoặc num_pages trong phiên bản 0.14.0 trước) để truy xuất tổng số trang trong mô hình của bạn.

Ví dụ:

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

'num_pages' đã được đổi tên cho 'total_pages' trong phiên bản 0.14.0 ([cam] (https://github.com/amatsuda/kaminari/commit/e79935c2d596e165be566f6d92eed8d5acd6a843)) – ciastek

+0

Nếu bạn đang sử dụng mặc định 'per', chỉ cần làm' Blog.all.page (1) .total_pages' –

Các vấn đề liên quan