रूप में अच्छी तरह इस बात के लिए अपने स्वयं के तर्क में लिख सकते हैं के बाद से मुझे नहीं लगता कि एक प्लगइन स्वयं को प्रस्तुत करने जा रहा है:
मैं यह सोचते हैं रहा हूँ शहर और देश आईडी की है। यदि नहीं, तो तर्क वास्तव में सरल होगा। अपने तत्व के लिए स्वत: पूर्ण ट्रिगर करने के लिए jQueryUI के स्वतः पूर्ण का उपयोग करें। एक नियंत्रक विधि जोड़ें, जो आपके शहर और देश के लेबल (संभावित रूप से एक शहर वस्तु पर एक विधि) देगा, साथ ही आपकी आईड्स को जेसन के रूप में वापस ले जाएगा। स्वत: पूर्ण "चयन" कॉलबैक में, शहर और देश आईडी के लिए अपने फॉर्म में छिपा फ़ील्ड सेट करें। यह अंतिम भाग वैकल्पिक है क्योंकि मुझे नहीं पता कि आप इस डेटा को फ़ॉर्म से कैसे बनाए रखने की योजना बना रहे हैं।
निम्न उदाहरण अपने अनुप्रयोग के बारे में बहुत मान, लेकिन आप आरंभ करने के लिए पर्याप्त होना चाहिए:
देखने के लिए स्क्रिप्ट का उदाहरण:
$("#yourField").autocomplete({
source: "/path_to_your_action",
minLength: 2,
select: function(event, ui) {
$(this).val(ui.item.label);
$(this).find("#country_id").val(ui.item.country_id);
$(this).find("#city_id").val(ui.item.city_id);
event.preventDefault;
}
})
नियंत्रक:
def your_action
term = params[:term]
cities = City.where("cities.name like ?", "%#{term}%")
.limit(25)
.all
render :json=>cities.collect{|c| {:label=>c.your_label_method, :city_id=>c.id, :country_id=>c.country_id}}
end
city.rb
def your_label_method
"#{self.name}, #{self.country.name)}"
end
को इंगित करने के लिए सही दिशा में एक अच्छा तरीका मिला, thx! – Rubytastic