Есть несколько вариантов, как делать такие вещи.
Одним из них является получение сценария автозаполнения js, который может использовать внешний источник данных xml / json.
Мне нравится (и использую) этот - http://www.codeproject.com/KB/scripting/AutoSuggestControl.aspx
Используя его, вам нужно реализовать какое-то действие для некоторого контроллера, который будет запрашивать все источники данных, которые вы хотите, с помощью запроса в стиле "LIKE" (получая все слова, которые начинаются с или содержат заданный параметр) и возвращать все это так:
format.xml { response.headers["Content-Type"] = "application/xml; charset=utf-8";
render :inline => '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>'+
"<listdata>#{@tags.join('|')}</listdata>" };
@ tags - это массив всех ключевых слов, которые вы получили по вашему запросу (или серии запросов).
Ваш шаблон будет иметь такой код:
<script>
var obj = new autosuggest("someid", "", "http://mysite.org/tags.xml?term=");
</script>
Где «someid» - это атрибут «id» вашего поискового ввода, «/suggest.xml» - это путь к вашему контроллеру / действию, а «term» - ваш параметр для этого действия.
Я надеюсь, что это может помочь вам.