2012-12-16 21 views
7

मेरे पास एक तालिका है जिसमें 2 "असामान्य" कॉलम हैं - order और likeउद्धरण कॉलम नाम

तालिका दो डेटाबेस पर प्रतिलिपि बनाई गई है - MySQL और PostgreSQL

और मैं दोनों पर दोनों डेटाबेस से कनेक्ट और एक ही क्वेरी का उपयोग करने के लिए एक ही एप्लिकेशन की जरूरत है:

PageModel.where("`like` >= ?", params[:liked]) 

यह केवल MySQL में काम करेंगे।

कॉलम नाम उद्धृत करने के लिए ActiveRecord कैसे बनाएं?

कुछ की तरह: - यह सिर्फ यह उद्धरण के बिना स्तंभ नाम रिटर्न

PageModel.where("%s >= ?" % quote_column_name(:like), params[:liked]) 

मैं एक विधि है कि अब के लिए बेकार है पाया।

http://www.rubydoc.info/docs/rails/3.2.8/ActiveRecord/ConnectionAdapters/Quoting:quote_column_name

शायद यह सिर्फ एक प्लेसहोल्डर है और वहाँ एक और तरीका है कि यह करता है?

उत्तर

10

यह एक डेटाबेस एडाप्टर से दूसरे तक निर्भर करता है। तो मूल रूप से, प्रत्येक एडाप्टर इस विधि को अपनी परिभाषा के साथ ओवरराइड करता है। अपेक्षित रूप से कार्य

ActiveRecord::Base.connection.quote_column_name "my_column" 
+0

धन्यवाद,:

आप में रुचि रखते हैं। –

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