当我输入一个自动完成字段时,我一直得到这个406(不可接受)错误。
我正在使用jquery移动和jquery ui自动完成和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>
这是我的rails动作
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"]}
但是自动完成不工作…你知道
我猜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