在 rails 4.0 中,我使用的是 select2(bootstrap) 插件。我想在自动完成列表中生成动态数据,但列表中没有加载数据。如果我使用下面的代码,我会收到类似“Uncaught TypeError: Cannot call method 'toUpperCase' of undefined”的错误。
$('#DIV_NAME').select2({
placeholder: "Search for a names",
multiple: true,
minimumInputLength: 1,
ajax: {
url: "autocomplete/names",
dataType: 'json',
data: function (term) {
return { q: term };
},
results: function (data) {
return {results: data};
}
}
});
代码参考, http: //ivaynberg.github.io/select2/#multi
从上面的链接中,我使用了 2 个名为 select2.js、select2.min.js 的 js 文件
在控制器端,
def names
@query = params[:q]
@name_list = Keyword.where("value LIKE '%#{@query}%' AND category = 'Name'").limit(15)
@names = @name_list.collect(&:value)
@ids = @name_list.collect(&:id)
@id_name_pairs = Hash[@ids.zip(@names)]
@values = []
@id_name_pairs.each_pair do |k, v|
hash = {}
hash["id"] = k
hash["value"] = v
@values.push(hash)
end
respond_to do |format|
format.html{}
format.js {
render :json => @values
}
end
end
请帮我解决这个 select2 问题。