2012-05-04 8 views
16

का उपयोग करके पेज गिनती कैसे प्राप्त करें मैं मॉडल ऑब्जेक्ट्स की एक बड़ी श्रृंखला के माध्यम से पुनरावृत्ति कर रहा हूं और प्रदर्शन/स्मृति कारणों के लिए पेजिनेट की आवश्यकता है।कामिनरी

मैं इस तरह कुछ करना चाहता हूँ:

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

जाहिर है मैं गिनती अपने आप हो और गणित कर सकते हैं, लेकिन वहाँ NUM_PAGES में से एक बराबर है? या क्या यह पूरी तरह से करने का एक और शानदार तरीका है?

उत्तर

34

हां, आप अपने मॉडल में पृष्ठों की कुल संख्या पुनर्प्राप्त करने के लिए कुल_पृष्ठ (या पूर्व 0.14.0 संस्करण में num_pages) का उपयोग कर सकते हैं।

उदाहरण के लिए:

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

'num_pages' संस्करण 0.14.0 में' total_pages' को नाम दिया गया है ([प्रतिबद्ध] (https://github.com/amatsuda/kaminari/commit/e79935c2d596e165be566f6d92eed8d5acd6a843)) – ciastek

+0

यदि आप डिफ़ॉल्ट 'प्रति' का उपयोग कर रहे हैं, तो बस' Blog.all.page (1) .total_pages' करें –