2011-03-14 19 views
10

रूबी पर रूबी की तरह वाक्यविन्यास क्या है? यह कुछ ऐसा है जो मैं करने की कोशिश कर रहा हूं:रूबी

मैं तालिका से सभी अंतिम नाम ढूंढने की कोशिश कर रहा हूं जो कि उदाहरण के साथ शुरू होता है तो like %egm%। मुझे पता है कि find_by_sql का उपयोग करके कैसे करना है, लेकिन रुबी तरीके से जानना उत्सुक है।

s = Person.find_by_last_name('nan%') 

उत्तर

12
l_name_var = "nan" 
Person.where("people.last_name LIKE :l_name", {:l_name => "#{l_name_var}%"}) 

या अपने मामले में

l_name_var = "egm" 
Person.where("people.last_name LIKE :l_name", {:l_name => "%#{l_name_var}%"}) 
12
Person.where('name LIKE ?', '%egm%').all 
3

थोड़ा विस्तार करने के लिए, find_by_X तरीकों, = ऑपरेटर उपयोग करती हैं इसलिए यदि आप एक तरह हालत के लिए उन्हें इस्तेमाल नहीं करना चाहते । "रेल" तरीके में अन्य उत्तरों में दिखाए गए तरीके के अंदर एसक्यूएल का थोड़ा सा उपयोग करना शामिल है। यदि आप ऑर्डर विधि का उपयोग करके अपने परिणामों को सॉर्ट करने का प्रयास कर रहे हैं तो वही लागू होगा।