Rails 3 - Как использовать автозаполнение с несколькими полями БД в качестве источников? - PullRequest
1 голос
/ 07 июня 2011

Привет, ребята!

Подробнее

Я использую rails3-jquery-autocomplete gem (https://github.com/crowdint/rails3-jquery-autocomplete) для своей функции поиска.

Чтобы реализовать поиск, я использую meta-search gem.

Задача

Моя просьба - выполнить поиск по радиомодели, которая содержит несколько столбцов. Мета-поиск может сделать это, но самоцвет автозаполнения в настоящее время, по-видимому, ограничен автозаполнением только из одного поля за раз. Я хотел бы, чтобы автозаполнение принимало в качестве источников каждое поле радиомодели.

Кроме того, в модели радио есть несколько внешних ключей, и я хотел бы получить их соответствующие значения.

Вопросы * * 1023 Была ли у вас такая проблема или вы знаете, как с ней бороться? Я просмотрел все вопросы в stackoveflow и попытался использовать коммиты того парня, который сам реализовал эту функцию -> Проблема № 15 на странице gem github Мне может понадобиться еще один драгоценный камень или способ реализовать это автозаполнение, поэтому, если у вас есть идеи, не стесняйтесь, дайте мне знать. Thx

Ответы [ 2 ]

1 голос
/ 13 июня 2011

Наконец, я использовал развилку парня, который реализовал интересные вещи. Но это не сработало должным образом, поэтому я разветвил его вилку и изменил, чтобы иметь возможность использовать его.

Если вам нужна помощь в автозаполнении из нескольких полей и таблиц на рельсах 3, ruby ​​1.8.7, тогда вы можете попробовать мой форк из rails3-jquery-autocomplete gem => https://github.com/dbachet/rails3-jquery-autocomplete

Поддержка mongoid отсутствует, параметры не проверялись.

Thx

1 голос
/ 07 июня 2011

Есть несколько вариантов, как делать такие вещи. Одним из них является получение сценария автозаполнения 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» - ваш параметр для этого действия. Я надеюсь, что это может помочь вам.

...