JQuery Tokeninput поиск по нескольким полям - PullRequest
2 голосов
/ 13 мая 2011

Я установил плагин ввода токенов JQuery. https://github.com/loopj/jquery-tokeninput Автозаполнение работает, но у меня есть ситуация, когда я ищу по нескольким атрибутам модели. Например, у меня есть Модель лекарства, а атрибуты модели включают название и активный ингредиент

Я использую гем meta_where для поиска по нескольким полям, и он работает правильно; проверка вывода json показывает, что мой метод Drug.where () возвращает правильные строки результатов. Однако на внешней стороне jQuery заполняет поле автозаполнения только названием препарата. Как мне заставить jQuery отображать несколько атрибутов модели в поле автозаполнения? В идеале я хотел бы отобразить что-то вроде "model.name (model.active_ingredient)" в раскрывающемся списке автозаполнения. Прямо сейчас jQuery tokeninput выбирает правильные строки, но отображает только имя. Как я могу получить другие атрибуты модели, чтобы показать?

Спасибо

1 Ответ

6 голосов
/ 13 мая 2011

вы можете объединить имя и active_ingredient для json, потому что все, что вы можете использовать, это имя: "Aspirin (Mentol)"

, когда вы возвращаете его из контроллера и отделяете его, как вынужно.

(в вашей модели Drug)

def fullname
  "#{name} (#{active_ingrdient})"
end

все, что вам нужно, это установить имя: параметр в json заполнить вашим атрибутом полного имени

format.json do
  render :json => @drugs.map { |drug| drug.as_json(:only => :id, :methods => :name) }
end

установить его вручную:

format.json do
  render :json => @drugs.map { |drug|  {:id => drug.id, :name => drug.fullname} }
end

надеюсь, что поможет вам в дальнейшем

...