2012-03-14 9 views
10

मान लिया जाये कि मैं एक User मॉडलActiveRecord :: रिलेशनशिप, मौजूदा सीमा को हटाने और ऑफ़सेट करने का कोई तरीका?

paged_users = User.scoped.limit(2).offset(3) 

वहाँ सीमा और ऑफसेट निकाल कर paged_userUser.scoped है बनाने के लिए एक रास्ता है है? आईई:

all_user = paged_users.remove_limit.remove_offset 
+0

"User.scoped.limit (2)। ऑफसेट (2) .limit (100000)। ऑफसेट (0)" मैं 1 एम सीमा और 0 ऑफसेट जोड़ सकता हूं, लेकिन वैकल्पिक खोज रहा हूं। – allenhwkim

+0

चार-स्पेस इंडेंटिंग का उपयोग कर अपने प्रश्नों में अपना कोड प्रारूपित करें। इसके अलावा: आपके संदेशों पर हस्ताक्षर करने की कोई आवश्यकता नहीं है। –

उत्तर

28

मैं सोच रहा हूँ आप इस तरह एक गुंजाइश है:

users = User.where("something").limit(20).order("name ASC") 
इसे ध्यान में रखते

...

limit पास nillimit को निकालने के लिए:

users.limit(nil) 

फिर ऑर्डरिंग को हटाने के लिए,का उपयोग करें 10, भी यह nil गुजर:

users.limit(nil).reorder(nil) 

यही कारण है, दोनों की सीमा और अपने दायरे से आदेश निकाल देंगे अन्य सभी चीजों के संरक्षण। यदि आप unscoped का उपयोग करना चाहते थे, तो यह सभी स्कोपिंग को हटा देगा।

+1

धन्यवाद। यह बहुत अच्छा है – allenhwkim

+0

मेरे लिए "उपयोगकर्ता = उपयोगकर्ता .limit (शून्य)" काम किया। – bhupinder

संबंधित मुद्दे