406 (не приемлемо) ошибка на рельсах и jquery mobile autocomplete - PullRequest
0 голосов
/ 25 сентября 2011

Я получаю эту ошибку 406 (не допустимо) при вводе в поле автозаполнения.

Я использую jquery mobile и jquery ui autocomplete и rails

вот мой jquery

$("#request_artist").focus(function(){ 
    $("#request_artist").autocomplete({ 
        source: function(req, add){ 
            $.getJSON(artistRequestUrl, req, function(data) { 
                var suggestions = data.suggestions; 
                add(suggestions);    
            });   
        },
        change: function() {
            $("#request_song").attr("disabled", false); 
            $("#request_submit").attr("disabled", false); 
            $("#request_like_reason").attr("disabled", false); 
            $('.disable_color').css("color", "black");   
        },    
    });
});    

вот мой HTML

<div data-role="fieldcontain">
    <label for="search">Artist</label>
    <input type="search" name="password" id="request_artist" value="" />
</div>

вот мои действия рельсы

def ajax_artist
  bands = Band.all
  artists = bands.map(&:name).uniq.sort
  filter_input(artists, params[:term])
  Rails.logger.info @all_instances_hash.inspect
  respond_to do |format|
    format.json { render :json => @all_instances_hash}
  end
end

если я посмотрю на регистратор в консоли, я получу это для @all_instances_hash, если я введу букву c

 {:query=>"c", :suggestions=>["Casting Crowns", "John Mark McMillan"]}

Но автозаполнение не работает ... любая идея

1 Ответ

2 голосов
/ 25 сентября 2011

Полагаю, что Rails думает, что вы просите вернуть HTML.Ваш ajax_artist может только когда-либо отвечать (разумно) JSON, поэтому попробуйте полностью игнорировать формат:

def ajax_artist
  bands = Band.all
  artists = bands.map(&:name).uniq.sort
  filter_input(artists, params[:term])
  Rails.logger.info @all_instances_hash.inspect
  render :json => @all_instances_hash
end
...