ऊपरी में कनवर्ट करना सबसे अच्छा है क्योंकि इसमें 3 सबसे अधिक उपयोग किए गए रेल डेटाबेस डेटाबेस बैकएंड के लिए संगत वाक्यविन्यास शामिल है। PostgreSQL, MySQL और SQLite सभी इस वाक्यविन्यास का समर्थन करते हैं। इसमें (नाबालिग) दोष है कि आपको अपने आवेदन में या अपनी परिस्थितियों में अपनी खोज स्ट्रिंग को अपरकेस करना है, जिससे इसे थोड़ा उलझन में डाल दिया जा सकता है, लेकिन मुझे लगता है कि आपके द्वारा प्राप्त अनुकूलता इसे लायक बनाती है।
MySQL और SQLite3 दोनों में केस-असंवेदनशील LIKE ऑपरेटर है। केवल PostgreSQL में केस-सेंसिटिव लिके ऑपरेटर और पोस्टग्रेएसक्यूएल-विशिष्ट (मैनुअल प्रति) ILIKE ऑपरेटर केस-असंवेदनशील खोजों के लिए है। आप Rails अनुप्रयोग पर अपनी स्थितियों में LIKE की इलिक्क कीड़े निर्दिष्ट कर सकते हैं, लेकिन ध्यान रखें कि एप्लिकेशन MySQL या SQLite के अंतर्गत काम करना बंद कर देगा।
एक तीसरा विकल्प यह जांचने के लिए हो सकता है कि आप किस डेटाबेस इंजन का उपयोग कर रहे हैं और तदनुसार खोज स्ट्रिंग को संशोधित करें। यह ActiveRecord के कनेक्शन एडेप्टर में/बंदरगाह को हैकिंग करके बेहतर किया जा सकता है और PostgreSQL एडाप्टर क्वेरी निष्पादन से पहले "ILIKE" के लिए "LIKE" को प्रतिस्थापित करने के लिए क्वेरी स्ट्रिंग को संशोधित करता है। यह समाधान हालांकि सबसे अधिक मजबूत और आसान तरीकों के प्रकाश में दोनों शब्दों को अपरकेसिंग करने के लिए है, मुझे लगता है कि यह प्रयास खराब नहीं है (हालांकि आपको इसे करने के लिए बहुत सारे ब्राउनी पॉइंट मिलेंगे)।
स्रोत
2009-03-05 18:19:05
यदि आप प्रोड्यूशन में पोस्टग्रेस का उपयोग कर रहे हैं तो पोस्टग्रेज़ स्थानीय रूप से भी उपयोग करें। यह पहला मुद्दा नहीं होगा जिसे आप चलाते हैं, और इसका मतलब यह भी है कि आप पोस्टग्रेस-विशिष्ट कुछ भी नहीं ले सकते हैं। –