результаты автозаполнения пользовательского интерфейса jquery не отображаются, даже если получен ответ

#jquery #ruby-on-rails #jquery-ui-autocomplete

#jquery #ruby-on-rails #jquery-ui-autocomplete

Вопрос:

Я использую автозаполнение пользовательского интерфейса jquery в приложении Rails, и мои результаты не отображаются. В firebug я получаю ошибку 304 not modified, хотя в ответе я вижу правильные строковые ответы в виде массива.

Вот мой код:

контроллер автозаполнения:

 class AutocompleteController < ApplicationController
  respond_to :json

  # result is array of strings eg: ["foo", "foobar", "foobarbat"]
  def work_fandom
    @results = redis_tag_lookup(params[:term])
    respond_with(@results)
  end
end
  

В application.js:

 // Autocomplete
jQuery(function($){
  $('.autocomplete').each(function(){
    var self = $(this);
    self.autocomplete({
        source: self.attr('autocomplete_method'),
        minLength: 3
    });
  });
});
  

В представлении после загрузки:

 <input aria-haspopup="true" aria-autocomplete="list" role="textbox" autocomplete="off" 
autocomplete_method="/autocomplete/work_fandom" class="autocomplete ui-autocomplete-input ui-autocomplete-loading" 
id="work_fandom" name="work[fandom_string]" value="" type="text">
  

Любые предложения приветствуются!

Ответ №1:

Попробуйте ответить с помощью (@results.to_json)

Комментарии:

1. Похоже, на самом деле проблема заключалась в том, что автозаполнение пользовательского интерфейса jquery ожидает, что результаты будут в массиве хэшей {:label => label, :value => value}!