Мог бы также написать свою собственную логику для этого, так как я не думаю, что плагин собирается представить себя:
Я предполагаю, что город и страна имеют идентификаторы. Если нет, логика будет проще. Используйте автозаполнение jQueryUI для запуска автозаполнения для вашего элемента. Добавьте метод контроллера, который даст метку вашего города и страны (вероятно, метод для объекта города) вместе с вашими идентификаторами назад как json. В автозавершении «выберите» обратный вызов установите скрытые поля в форме для идентификаторов города и страны. Эта последняя часть является необязательной, потому что я не знаю, как вы планируете сохранять эти данные из формы.
В следующих примерах предполагается много о приложении, но должно быть достаточно, чтобы вы начали:
пример скрипта для просмотра:
$("#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