मैं रेल 2.3.4 के साथ संस्करण 2.3.5 में 'बाइनरीलॉगिक-सर्चलॉगिक' मणि का उपयोग कर रहा हूं।रेल: सर्चलॉग खोज या शर्तों
मैं जो करना चाहता हूं वह कई विशेषताओं पर निर्दिष्ट मान के लिए मॉडल पर एक खोज कर रहा है। मैं सब कुछ चेनिंग के माध्यम से इस लक्ष्य को हासिल एक साथ
User.first_name_or_last_name_or_email_like(value)
चाहते लेकिन इस में अधिक से अधिक विशेषताओं के साथ खोज इस बदसूरत हो जाता है। इसके बजाय मैं इस तरह searchlogic की खोज तंत्र का उपयोग करना चाहते हैं:
search = User.search
search.first_name_like = value
search.last_name_like = value
..
@users = search.all
तो इस तरह के माध्यम से खोज करने के लिए है और - लेकिन क्या मैं चाहता हूँ या है। मुझे यह हासिल करने के दो तरीके मिल गए हैं, लेकिन दोनों काम नहीं करते हैं।
1 एक: हालत
search = User.search
search.first_name_like = value
search.or_last_name_like = value
@users = search.all
के लिए एक or_ पहले जोड़ें यह मैं The or_last_name_like is not a valid condition. You may only use conditions that map to a named scope
2 एक देता है: का उपयोग search.any
search = User.search
search.first_name_like = value
search.last_name_like = value
@users = search.any
मुझे किसी भी '# के लिए undefined method
देता है `।
उस पर कोई विचार है? क्या मैं रीडमे के सही बिंदु को जोड़ रहा हूं?
आपकी बहुत स्वागत सहायता के लिए धन्यवाद!
संपादित करें: कुछ बदसूरत वैकल्पिक हल के लिए समय:
search = User.search
search.first_name_like = value
search.last_name_like = value
User.find(:all, :conditions => search.scope(:find).gsub('AND','OR'))
वर्क्स लेकिन निश्चित रूप से नहीं जाने का रास्ता है, न कि यह है है?
+1 एक त्वरित रूप से देखने के बाद, मैं इस उत्तर से सहमत हूं। पुष्टि के लिए, आप सर्चलॉग मेलिंग सूची से पूछ सकते हैं। –