pourrait tout aussi bien écrire votre propre logique pour cela car je ne pense pas un plugin va présenter lui-même:
Je suppose que la ville et le pays ont ids. Sinon, la logique serait en fait plus simple. Utilisez la saisie semi-automatique de jQueryUI pour déclencher la saisie semi-automatique de votre élément. Ajoutez une méthode de contrôleur, qui donnera votre étiquette de ville et de pays (probablement une méthode sur un objet ville) avec vos identifiants comme json. Dans le rappel automatique "select", définissez les champs masqués dans votre formulaire pour les ID de ville et de pays. Cette dernière partie est facultative car je ne sais pas comment vous prévoyez de conserver ces données à partir du formulaire.
Les exemples suivants supposent beaucoup sur votre application, mais devrait être suffisant pour vous aider à démarrer:
exemple de script pour la vue:
$("#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;
}
})
contrôleur
:
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
A obtenu un bon chemin dans la bonne direction avec ceci, merci! – Rubytastic