Rails、JSON对象、jQuery、自动完成
我将此jquery自动完成插件用于rails: 我不知道如何在Rails控制器和javascript文件中格式化结果 我的控制器里有这样的东西Rails、JSON对象、jQuery、自动完成,jquery,ruby-on-rails,json,jquery-plugins,autocomplete,Jquery,Ruby On Rails,Json,Jquery Plugins,Autocomplete,我将此jquery自动完成插件用于rails: 我不知道如何在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 =>
@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
})
但是我不知道如何解析数据,所以我的autocomplete一次只得到一个包含所有结果的原始数组
如何处理script.js文件和/或控制器中的JSON以使其正常工作?根据该插件的说明,没有数据类型
选项。您可能还混合了来自插件一个分支的配置选项和来自另一个分支的源代码
您是否尝试过从服务器获取建议数据的默认(管道分隔,如果我的内存正确的话)格式
顺便说一句,我确实找到了这个fork,它为autocomplete插件添加了JSON支持 我在演示中发现了一个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>");
});
});
函数格式(用户){
返回user.login+”(“+user.name+”);
}
$(“#登录”).autocomplete('/url',{
多重:假,
延误:100,
数据类型:“json”,
解析:函数(数据){
返回$.map(数据、函数(行){
返回{
数据:世界其他地区,
值:row.login,
结果:row.login
}
});
},
formatItem:函数(项){
返回格式(项目);
}
}).结果(功能(e,项目){
$(“#内容”)。附加(“所选”+格式(项目)+“”;
});
});