प्लेसहोल्डर (यानी $1
, $2
, ...) मूल्यों के लिए हैं। एक डेटाबेस नाम (या तालिका का नाम, स्तंभ नाम, ...) एक पहचानकर्ता है। यह वैरिएबल नाम और रूबी में वेरिएबल के मान के बीच के अंतर के समान है।
यदि आपको कुछ एसक्यूएल में एक पहचानकर्ता को गतिशील रूप से सम्मिलित करने की आवश्यकता है तो आपको स्ट्रिंग इंटरपोलेशन और विशेष उद्देश्य का उपयोग करने की आवश्यकता है quote_ident
यह सुनिश्चित करने की विधि कि आप इसे ठीक से उद्धृत करते हैं। तो कुछ इस तरह:
db_name = conn.quote_ident(db_name)
res = conn.exec("CREATE DATABASE #{db_name}")