जैसा कि टिप्पणियों में बताया गया है, अधिकांश डेटाबेस स्ट्रिंग अक्षर के लिए सिंगल कोट्स और पहचानकर्ताओं के लिए डबल कोट्स का उपयोग करते हैं। MySQL बल्कि ढीला है और स्ट्रिंग अक्षर के लिए डबल कोट्स भी स्वीकार करेगा लेकिन PostgreSQL (शुक्र है) काफी सख्त है। तो आप सिंगल कोट्स का उपयोग करना चाहते हैं:
SnCl.all(:conditions => "col3 = 'xx'")
या where
. का उपयोग कर रहे हैं :
SnCl.where("col3 = 'xx'")
या डेटाबेस ड्राइवर की उद्धरण सुविधाओं के समझदार उपयोग के साथ:
SnCl.where("col3 = #{SnCol.connection.quote('xx')}")
और आखिरी के लिए सर्वश्रेष्ठ को सहेजना, जिस तरह से समझदार लोग प्लेसहोल्डर या हैश तर्कों का उपयोग करके where
करते हैं :
SnCl.where('col3 = ?', 'xx')
SnCl.where('col3 = :col3', :col3 => 'xx')
SnCl.where(:col3 => 'xx')
अंतिम वाला रेल के लिए सबसे मुहावरेदार होगा और इसके ऊपर के दो अधिक जटिल परिस्थितियों के लिए उपयोगी होंगे जहां चेनिंग या तो बहुत बोझिल है या काम नहीं करती है (जैसे कि जब आपको अपने WHERE क्लॉज में OR की आवश्यकता हो)।