2012-05-04 11 views
16

kullanarak sayfa sayısı nasıl alınır? Model nesneleri çok sayıda arasında yineleme ve performans/bellek nedenleri için sayfalandırma gerekiyor.Kaminari

Böyle bir şey yapmak istiyorum:

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

Açıkçası kendimi sayısını elde etme ve matematik yapabilirsiniz, ancak NUM_PAGES eşdeğer var mı? Ya da bunu daha şık bir şekilde yapmak için daha şık bir yolu var mı?

cevap

34

Evet, modelinizdeki toplam sayfa sayısını almak için total_pages (veya 0.14.0 sürümündeki num_pages) kullanabilirsiniz. Örneğin

:

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

'num_pages' sürüm 0.14.0 de total_pages'' olarak değiştirilmiş ([işlemek] (https://github.com/amatsuda/kaminari/commit/e79935c2d596e165be566f6d92eed8d5acd6a843)) – ciastek

+0

Varsayılan olarak 'per' kullanıyorsanız, sadece şunu yapın: Blog.all.page (1) .total_pages' –

İlgili konular