这可能是一个愚蠢的问题。我在表单上有一个具有以下 Select2 设置的多值字段
jQuery('#mymodel_thing_ids').select2
multiple: true
placeholder: "Select things"
minimumResultsForSearch: -1
ajax:
url: "/things.json"
dataType: "json"
results: (data, page) ->
results: data
formatResult: (data) -> data.name
formatSelection: (data) -> data.name
提交包含选定内容的表单时,我得到了
"thing_ids"=>"[],3,2"
即所选事物的初始值(空方括号)和 ID。但我想有追随者
"thing_ids"=>"[3,2]"
使用 Select2 可以吗?我做错了什么?
更新
要避免开头出现大括号,请在创建输入元素时使用 value="。
问题是 Select2 发回一个字符串的项目列表,例如 "thing_ids" => "1,2,3"
.以这种方式使用 Select2 时,我所做的是为 thing_tokens
和 thing_tokens=
创建访问器方法,如下所示:
def thing_tokens
thing_ids.join(",")
end
def thing_tokens=(token_string)
self.thing_ids = token_string.split(",")
end
然后,在您的表单中,您将使其成为:thing_tokens
的输入,而不是thing_ids
。如果您使用的是 Rails 4,请确保还允许在控制器中使用:thing_tokens
。