2016-08-02 8 views
5

कोडखोज परिणाम

filter_text=params[:filter_search] 
@outputs = Output.where("name LIKE '%#{filter_text}%'").order("name ASC") 
+0

आप पैरामीटर में किसी भी मूल्य है [: filter_search] मूल्य आप गुजर रहे हैं और psql –

+0

चेक किसी भी रिकॉर्ड देखते हैं कि उस मानदंड से मेल खाते हैं? –

+0

में मूल्य के मामले के लिए – Alfie

उत्तर

3

यदि आप ransack मणि का उपयोग करते हैं, तो यह आपको search पर सरल विधियों का उपयोग करने की अनुमति देगा। ransack का उपयोग करना, आप केवल यह करने के लिए की आवश्यकता होगी:

@outputs = Output.search(name_cont: params[:filter_search]).result.order("name ASC") 
7

दिखाई नहीं दे रहा मैं विशेष खोज कीवर्ड के साथ PostgreSQL से रिकॉर्ड खोज में समस्या आ रही है, लेकिन कोई रिकॉर्ड यहां प्रदर्शित कर रहा है है इसे आज़माएं:

filter_text=params[:filter_search] 
    @outputs = Output.where("name LIKE ?","%#{filter_text}%").order("name ASC") 
+1

या कुछ लोग तैयार करेंगे ** कृपया भगवान के प्यार के लिए, बाध्य चर का उपयोग करें ** - मुझे उम्मीद थी कि एसक्यूएल इंजेक्शन की मृत्यु 10 साल पहले हुई थी ... – Falco

3

आप तो केस संवेदी खोज के लिए जा रहे हैं ILIKE

filter_text = params[:filter_search] 
@outputs = Output.where("name ILIKE ?", "'%#{filter_text}%'").order("name ASC") 
3
के बजाय

के लिए जाना:

filter_text=params[:filter_search] 
@outputs = Output.where("name LIKE '%#{filter_text}%'").order("name ASC") 

निम्नलिखित का प्रयास करें:

filter_text=params[:filter_search] 
@outputs = Output.where(["name LIKE ?", "%#{filter_text}%"]).order("name ASC") 
1

एक आसान तरीका खोज करने के लिए Ransack उपयोग करने के लिए है। जो आपको एक कुशल खोज तंत्र प्रदान करता है।

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