Посмотрите на самоцвет rails3-jquery-autocomplete .Это должно быть основой для вашей реализации.Существует даже пример приложения , в котором объясняется каждый шаг, который необходимо выполнить, чтобы включить его в свое приложение.
На Railscasts.com вы найдете эпизод, объясняющий, как его использовать: Ассоциация автозаполнения (исправлено)
Если это не сработает для вас, вам следует вернуться и задать конкретные вопросы.Из приведенного выше вопроса не ясно, где вы хотите использовать автозаполнение.Обычно он используется для установления (дополнительной) ассоциации с другим объектом, где вы хотите заменить раскрывающийся список или список выбора или список флажков на поле автозаполнения.
СуществуетВ качестве альтернативы, если вы хотите выбрать более одной вещи, взгляните на эпизод Railscasts «Поля токенов» .Поскольку ваш комментарий гласит, что это то, что вы хотите сделать, вот несколько советов, как это сделать (скопировано из моего приложения, вы должны заменить его своим контекстом, это короткая версия Railscasts 258 ):
- Установите JQuery Tokeninput в ваше приложение Rails.
- Убедитесь, что ваше приложение знает jquery (используя Gem
jquery-rails
) - Включите файл Javascript
jquery.tokeninput.js
в свое приложение (синтаксис зависит от используемой версии). Включите в вашу модель следующий код (User
??):
class User < ActiveRecord::Base
attr_accessible :name, :tester_tokens
has_many :testers
attr_reader :tester_tokens
def tester_tokens=(ids)
self.tester_ids = ids.split(",")
end
end
Включите в свой application.js
следующий код:
$(function () {
$('#user_tester_tokens').tokenInput('/testers.json', {
crossDomain: false,
prePopulate: $('#user_tester_tokens').data('pre') })
});
Включите в свой TestersController
следующий код:
class TestersController < ApplicationController
def index
@testers = Tester.where("name like ?", "%#{params[:q]}%")
respond_to do |format|
format.html
format.json { render :json => @testers.map(&:attributes) }
end
end
end
Измените в своем коде просмотра следующую строку:
= form.text_field :tester_tokens, "data-pre" => @user.testers.map(&:attributes).to_json
Вы найдете объяснение всех этих шагов, а также некоторые дополнительные сведения в Railscasts эпизод 258 .