मैं रूबी के लिए विल पेजिनेट मणि का उपयोग कर रहा हूँ। मैं लोगों का एक समूह प्राप्त करने और एक मैदान पर छँटाई करने के लिए विल पेजिनेट का उपयोग कर रहा हूँ। मैं जो चाहता हूं वह उनमें से केवल पहले 100 है। मूल रूप से शीर्ष लोग। मैं ऐसा नहीं कर सकता। मैं इसके बारे में कैसे जाउंगा? धन्यवाद

5
Jonovono 1 अक्टूबर 2011, 18:57

3 जवाब

सबसे बढ़िया उत्तर
people = Person.limit(100).paginate(:per_page => 5)
-1
Pioz 3 अक्टूबर 2011, 19:11

जहां तक ​​​​मेरा ज्ञान जाता है will_paginate इसके लिए कोई विकल्प प्रदान नहीं करता है, मेरे पास इसके स्रोत में भी जांच करने के लिए एक रूट था, लेकिन अगर आपको अपनी शर्तों में एक सबक्वायरी होने पर कोई फर्क नहीं पड़ता है तो यह किया जा सकता है ...

people = Person.paginate(page: 10).where('people.id IN (SELECT id FROM people ORDER BY a_field LIMIT 100)').per_page(5)
people.total_pages
=> 20

अपनी छँटाई के क्षेत्र के साथ a_field को बदलें, और यह आपके लिए काम करना चाहिए।

(ध्यान दें, उपरोक्त अपने सिंटैक्स के लिए will_paginate (3.0.2) के वर्तमान संस्करण का उपयोग करता है, लेकिन वही अवधारणा पुराने संस्करण के साथ-साथ विकल्प हैश का उपयोग करके भी लागू होती है)

4
roboles 1 अक्टूबर 2011, 20:06
अरे। यह मुझे प्रति पृष्ठ 100 देगा? मुझे एक पेज पर 5 चाहिए। लेकिन केवल पहले 100।
 – 
Jonovono
1 अक्टूबर 2011, 19:11
आह, मैं देखता हूं, कोई समस्या नहीं, मैंने आपकी आवश्यकताओं के अनुरूप अपना मूल उत्तर संपादित कर लिया है :)
 – 
roboles
1 अक्टूबर 2011, 20:07
यह कमाल का है। धन्यवाद। पूरी तरह से काम किया!
 – 
Jonovono
2 अक्टूबर 2011, 09:12

will_paginate रत्न, पेजिनेट करने के लिए प्रविष्टियों की संख्या को सीमित करने के लिए total_entries पैरामीटर लेगा।

@problems = Problem.paginate(page: params[:page], per_page: 10, 
total_entries: 30)

यह आपको प्रत्येक 10 रिकॉर्ड के 3 पृष्ठ देता है।

2
bishal 12 जुलाई 2017, 07:09