2012-03-21 19 views
5

मैं निम्नलिखित नामित गुंजाइश है:नामित गुंजाइश - बाँध चर की गलत संख्या

wrong number of bind variables 

मैं अगर किसी को कर सकता है यह जानना चाहेंगे:

named_scope :report_search, lambda { |search| 
    { 
    :conditions => ["rep_name like ? or rep_id like ? or rep_symbol like ? or rep_issue like ?", search] 
    } 
} 

जब मैं इसे चलाने के लिए, मैं त्रुटि संदेश मिलता है मुझे कोड के साथ गलत क्या पता लगाने में मदद करें।

बहुत धन्यवाद

उत्तर

8

आप अपने बाँध बयान में प्रत्येक प्रश्न चिह्न के लिए एक चर की जरूरत है। यदि वे सभी एक ही कर रहे हैं, तो आप उन्हें कई बार दोहराने की आवश्यकता:

named_scope :report_search, lambda { |search| 
    { 
    :conditions => ["rep_name like ? or rep_id like ? or rep_symbol like ? or rep_issue like ?", search, search, search, search] 
    } 
} 
+1

त्वरित उत्तर के लिए धन्यवाद। तर्क को दोहराए बिना 'या' स्थिति का प्रदर्शन करने का कोई अन्य तरीका है? – Kim

+0

कंददा ने मुझे पंच पर मार दिया। इस तरह आप इसे केवल एक बार दोहराने के साथ करेंगे। – Veraticus

14

आप नामित बाँध चर का उपयोग कर सकते हैं अगर आप इनपुट को दोहराने के लिए नहीं करना चाहती।

named_scope :report_search, lambda { |search| 
    { 
    :conditions => [" rep_name LIKE :search OR 
         rep_id  LIKE :search OR 
         rep_symbol LIKE :search OR 
         rep_issue LIKE :search", :search => search] 
    } 
} 
संबंधित मुद्दे