我也有同样的问题,这就是我所做的:
这是我返回 Json 格式的搜索符号的函数 。
tags = TagMaster.where("name LIKE ?", "%#{params[:q]}%").limit(10)
if tags == []
list << {"id" => "0","name"=>new_tag.rstrip}
else
tags.each { |tag| list << {"id" => tag.id.to_s, "name" => tag.name }}
end
respond_to do |format|
format.json { render :json => list.to_json, :layout => false }
end
现在, 这将允许显示您在自动完全下载键中键入的任何内容, 点击它会显示为标记 。
现在您无法添加任何更多的自定义标记, 因为数据库中没有的标记会返回 ID 0, 所以此时只允许一个自定义标记 。
这个问题,我跟着。
var k = jQuery.noConflict();
k("#project_tags").tokenInput("tag_list", {
hintText: "Enter Tags for your Project",
noResultsText: "No Such Tags",
searchingText: "Looking for your Tags",
preventDuplicates: true,
theme: "facebook",
onAdd: function (item) {
if (item.id == 0 ) {
k.ajax({
url: /add_project_tag ,
data: { name: item.name },
success:function(data) {
k("#project_tags").tokenInput("add", {id: data, name: item.name});
k("#project_tags").tokenInput("remove", {id: 0 });
}
});
}
}
});
您可以在此看到, 我将添加_ project_ tag 调用到数据库中存储该自定义标签, 并返回该插入标签的代号。 所以现在您只需在 s id 中添加相同的标记, 然后用 0 来删除符号 。
所以现在没有0的标记了 你可以随心所欲地添加多少个新的标记。
希望这有帮助 如果再有问题的话 抛出问题来