试图让Select2删除一个项目,并找出它为什么在更新时不断添加新标记。
使用Select2.JS V3.5
遵循ActiveAdmin/Select2示例
当我试图删除一个项目时,它不会删除它。它还会将标记列表组合到一个新的STRING中,从而创建一个新标记。即,如果我有["play","doe"],并且我更新了另一个字段,它会创建一个名为"play doe"的新标签,从而产生["play","doe","play-doe"]。每次更新时都会继续这样做。
这是我的JS代码
// Generated by CoffeeScript 1.9.3
$(document).ready(function() {
$('.tagselect').each(function() {
var placeholder, saved, url;
placeholder = $(this).data('placeholder');
url = $(this).data('url');
saved = $(this).data('saved');
$(this).select2({
tags: true,
placeholder: placeholder,
minimumInputLength: 3,
allowClear: true,
multiple: true,
debug: true,
initSelection: function(element, callback) {
saved && callback(saved);
},
ajax: {
url: url,
dataType: 'json',
data: function(term) {
return {
q: term
};
},
results: function(data) {
return {
results: data
};
}
},
createSearchChoice: function(term, data) {
if ($(data).filter((function() {
return this.text.localeCompare(term) === 0;
})).length === 0) {
return {
id: term,
text: term
};
}
}
});
});
});
锯https://github.com/mbleigh/acts-as-taggable-on/issues/676
在我的模型中添加了这个块,修复了formtastic错误,即所有标签都是一个扁平字符串,而不是逗号分隔的字符串。猴子补丁现在。
class MyModel < ActiveRecord::Base
...
def tag_list
super.to_s
end
end