Вы можете установить переменную экземпляра в любом методе вашего класса.
initialize
- это метод, который выполняется сразу после вызова Person.new
.
Все внешние данные для нового объекта передаются через аргументы .new(args)
.
Ваша строка @age = age
- это то же самое, что @age = nil
.
Это связано с тем, что age
отсутствует в аргументах initialize
.
Также у вас есть attr_accessor :age
.
Равно, что у вас есть методы:
def age
@age
end
def age=(age)
@age = age
end
Так что вы можете установить переменную экземпляра следующим образом:
john = Person.new('John')
p john.age #=> nil
john.age = 5
p john.age #=> 5
Проверьте этот блог на реализацию автоматического заполнения с помощью GWT:
http://jroller.com/glongman/entry/gwt_autocompleter
Но я рекомендовал бы сначала начать с чего-то очень простого самостоятельно схватывать, как реализация сделана. Я запустил бы с Trie, возможно, даже сохраненного полностью на клиенте, затем прогрессировал бы до оптимизации с запросами сервера, если Вы думаете, что они необходимы.