2012-06-15 17 views
7

जबकि आईडी छँटाई (और paginating) के साथ खोज करने के लिए im लॉग से हो रही है कोशिश कर रहा है (और संस्करण?):रूबी ऑन रेल्स आदेश आईडी द्वारा

@records = Audit.order("id DESC").page(page).per(50) 
:

SELECT `audits`.* FROM `audits` ORDER BY version, id DESC LIMIT 50 OFFSET 0 

मैं वर्तमान में इस कोड का उपयोग कर रहा

समस्या यह है कि पुनर्प्राप्त सूची आईडी अवरोही द्वारा सही ढंग से क्रमबद्ध नहीं है।

बीटीडब्ल्यू मैं ऑडिट के लिए ऑडिट-एक्टिवॉर्डर्ड मणि का उपयोग कर रहा हूं, क्या इससे कोई फर्क पड़ता है?

+1

ऐसा नहीं है कि इस रत्न आंतरिक रूप से अपने मॉडल में संस्करण के द्वारा एक default_scope आदेश लिखते हैं प्रकट होता है। यदि आप कुछ मॉडलों के लिए इस डिफ़ॉल्ट_स्कोप को अक्षम कर सकते हैं तो मणि दस्तावेज में खोज करने का प्रयास करें। – MurifoX

उत्तर

12

मेरा अनुमान है कि है कि आपके मणि उस संस्करण द्वारा आदेश लेखा परीक्षा मॉडल पर एक डिफ़ॉल्ट गुंजाइश स्थापित कर रही है, इसलिए फिलहाल यह संस्करण कॉलम द्वारा आरोही क्रम में ऑर्डर कर रहा है, और केवल तभी दो रिकॉर्ड समान हैं, क्या यह आईडी द्वारा अवरोही क्रम में ऑर्डर कर रहा है।

इसे ठीक करने के लिए, आप अपने श्रृंखला के लिए unscoped पहले जोड़ें कर सकते हैं:

Audit.unscoped.order("id DESC").page(page).per(50) 
7

कोशिश:

@records = Audit.except('order').order("id DESC").page(page).per(50) 

except('order') को निकाल देना चाहिए क्रम संबंधों प्रश्न में जोड़ा

+1

दिलचस्प, पहले 'छोड़कर' के बारे में कभी नहीं पता था। –

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