2012-08-05 6 views
5

का उपयोग करके टैग के माध्यम से खोज रहा है मैं कुछ मॉडलों के माध्यम से काफी जटिल खोज करने के लिए रैनसैक का उपयोग कर रहा हूं। इन मॉडलों में से एक में मुफ्त टेक्स्ट है और शब्दों को टैग करने के लिए act_as_taggable मणि का उपयोग करता है।रांसैक

मैं इन शब्दों का एक संग्रह चयनकर्ता बनाने की कोशिश कर रहा हूं ताकि रैनैक टैग के सबसेट से पूर्ण टेक्स्ट रिकॉर्ड प्राप्त कर सकें जिसे उपयोगकर्ता परिभाषित कर सकते हैं।

यह मुझे लगभग वहां ले जाता है, लेकिन यदि मैं एक से अधिक शब्द चुनने का प्रयास करता हूं, तो यह कोई परिणाम नहीं देता है!

= f.select :note_in, @freetexts.tag_counts_on(:tags), {}, {:multiple => true} 

उत्तर

0

रांसैक वास्तव में जटिल खोजों के लिए उन्मुख नहीं है। यह बहुत संभव है कि यदि आप पर्याप्त रूप से रंसैक करते हैं तो आप एक कठिन समस्या के साथ समाप्त होते हैं कि यदि आप जटिल चयन करते हैं।

जटिल खोज के लिए मैं रेंकैक के एक ही लेखक से सीक्वेल को पुनर्निर्मित करता हूं और जटिल खोजों के लिए बहुत बेहतर उन्मुख हूं।

इसके अलावा, एचटीएमएल के अनुसार सूत्र आप एक मरे हुए अंत पर हैं: Ransack and acts-as-taggable-on issues

0

मैं एक विशेषज्ञ बिल्कुल नहीं हूँ, लेकिन इस गैर लूटना समाधान उन है कि के साथ टैग के आधार पर फ़िल्टर करने की आवश्यकता है के लिए काम कर सकता था कार्य करता है के रूप में taggable-ऑन मणि:

@search = MyModel.ransack(params[:q]) 
@result = @search.result(distinct: true).includes(:related_model) 
@result = @result.tagged_with(params[:tags].split(/\s*,\s*/)) if params[:tags].present? 
@result = @result.paginate(page: params[:page], per_page: 20) 

यह एक नई उम्मीद: टैग परम लूटना के दायरे से बाहर है। आप उन परिणामों को फ़िल्टर करने के लिए उपयोग कर सकते हैं जो रंसैक आपको देता है।

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