Rails, JSON Object, JQuery, Автозаполнение - PullRequest
0 голосов
/ 02 июня 2010

Я использую этот плагин jquery для автозаполнения с рельсами: http://docs.jquery.com/Plugins/Autocomplete

Я не могу понять, как отформатировать мои результаты, как в моем контроллере Rails, так и в моем файле JavaScript.

У меня есть что-то подобное в моем контроллере ...

@query = params[:q].downcase
@json = User.all(:login => /^#{@query}/)
respond_to do |format|
  format.js  { render :json => @json.to_json(:only => "login"), :layout => false }  
end

И это в моем файле script.js ...

    $("#form").autocomplete('/url', {
    width: 320,
    dataType: 'json',
    highlight: false,
    scroll: true,
    scrollHeight: 300
    })

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

Как мне обработать JSON в файле script.js и / или в моем контроллере, чтобы он работал?

Ответы [ 2 ]

0 голосов
/ 02 июня 2010

Я действительно обнаружил пример JSON в Демо. Это выглядит так:

    function format(user) {
        return user.login + " (" + user.name + ")";
    }
    $("#login").autocomplete('/url', {
        multiple: false,
        delay: 100,
        dataType: "json",
        parse: function(data) {
            return $.map(data, function(row) {
                return {
                    data: row,
                    value: row.login,
                    result: row.login
                }
            });
        },
        formatItem: function(item) {
            return format(item);
        }
    }).result(function(e, item) {
        $("#content").append("<p>selected " + format(item) + "</p>");
    });
});
0 голосов
/ 02 июня 2010

Согласно документации для этого плагина, опция dataType отсутствует. Вы также можете смешивать параметры конфигурации из одной ветки плагина с источником из другой вилки.

Пробовали ли вы использовать формат по умолчанию (с разделителями каналов, если моя память мне правильно работает) для данных подсказок, полученных с сервера?

Кстати, я нашел здесь здесь , который добавляет поддержку JSON в плагин автозаполнения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...