दिलचस्प पोस्ट
स्प्रिंग एमवीसी @ पैथ व्हेरिएबल डॉट (।) के साथ छोटा हो गया है विम में एक कमांड को अलग करना एप्लिकेशन को नियोजित करते समय "असीमित सामर्थ्य" जेसीई नीति फ़ाइलों को स्थापित करने से बचने के लिए कैसे? पंक्तियों को एक तालिका से दूसरे में कॉपी करें, डुप्लिकेट को अनदेखा कर दें Android वर्चुअल डिवाइस बनाने में असमर्थ jQuery को एक पूर्ण डिवा पर माउस को स्क्रॉल करें MySQL – "0" के साथ फ्रंट पैड ज़िप कोड कैसे? मैं कैसे यूआरएल और पर्ल में एचटीएमएल से लिंक पाठ निकाल सकते हैं? जावास्क्रिप्ट – "यह" का स्वामी Index.php को छोड़कर सभी .php फ़ाइलों के लिए सीधी पहुंच से इनकार करें चयन तत्व पर IE6 / IE7 सीएसएस सीमा पायथन स्ट्रिंग और पूर्णांक सम्मिलन एएसपी। नेट एमवीसी 3 में दूसरे के मूल्य से संबंधित एक फ़ील्ड को कैसे मान्य किया जाए एक ही कुंजी का योग सरणी मान बाह्य चर ट्रैप

Arel और Rails में एक तरह की क्वेरी कैसे करें?

मैं ऐसा कुछ करना चाहता हूं:

SELECT * FROM USER WHERE NAME LIKE '%Smith%'; 

Arel में मेरा प्रयास:

 # params[:query] = 'Smith' User.where("name like '%?%'", params[:query]).to_sql 

हालांकि, यह हो जाता है:

 SELECT * FROM USER WHERE NAME LIKE '%'Smith'%'; 

एरेएल क्वेरी स्ट्रिंग 'स्मिथ' को सही ढंग से लपेटता है, लेकिन क्योंकि यह एक ऐसा बयान है जो काम करता है।

एआरएल में एक तरह की क्वेरी कैसे करता है?

पीएस बोनस – मैं वास्तव में मेज पर दो फ़ील्ड को स्कैन करने का प्रयास कर रहा हूं, दोनों नाम और विवरण, यह देखने के लिए कि क्या क्वेरी से कोई मिलान है। यह कैसे काम करेगा?

वेब के समाधान से एकत्रित समाधान "Arel और Rails में एक तरह की क्वेरी कैसे करें?"

इस तरह आप arel में एक समान क्वेरी करते हैं:

 users = User.arel_table User.where(users[:name].matches("%#{user_name}%")) 

पुनश्च:

 users = User.arel_table query_string = "%#{params[query]}%" param_matches_string = ->(param){ users[param].matches(query_string) } User.where(param_matches_string.(:name)\ .or(param_matches_string.(:description))) 

प्रयत्न

 User.where("name like ?", "%#{params[:query]}%").to_sql 

पुनश्च।

 q = "%#{params[:query]}%" User.where("name like ? or description like ?", q, q).to_sql 

आआद यह एक लंबा समय रहा है लेकिन @ सीजीई 5207 ने एक संशोधन (ज्यादातर उपयोगी यदि आप लंबे समय से नामित या कई लंबे नामित पैरामीटर खोज रहे हैं या आप टाइप करने के लिए बहुत आलसी हैं)

 q = "%#{params[:query]}%" User.where("name like :q or description like :q", :q => q).to_sql 

या

 User.where("name like :q or description like :q", :q => "%#{params[:query]}%").to_sql 

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

 User.where("name like :kw or description like :kw", :kw=>"%#{params[:query]}%").to_sql