Ruby on rails 使用Select2将ID传递给Rails
这可能是一个愚蠢的问题。我在表单上有一个多值字段,具有以下Select2设置Ruby on rails 使用Select2将ID传递给Rails,ruby-on-rails,select2-rails,Ruby On Rails,Select2 Rails,这可能是一个愚蠢的问题。我在表单上有一个多值字段,具有以下Select2设置 jQuery('#mymodel_thing_ids').select2 multiple: true placeholder: "Select things" minimumResultsForSearch: -1 ajax: url: "/things.json" dataType: "json" results: (data, page) -> resul
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"
i、 e.初始值(空方括号)和选定对象的ID。但我想有以下几点
"thing_ids"=>"[3,2]"
选择2可以吗?我做错了什么
更新
要避免在开始时使用大括号,请在创建输入元素时使用value=“”。问题是Select2会发回一个项目的字符串列表,例如
“thing_id”=>“1,2,3”
。以这种方式使用Select2时,我要做的是为thing\u tokens
和thing\u tokens=
创建访问器方法,如下所示:
def thing_tokens
thing_ids.join(",")
end
def thing_tokens=(token_string)
self.thing_ids = token_string.split(",")
end
然后,在表单中,您将使其成为
:thing\u tokens
的输入,而不是thing\u id
。如果您使用的是Rails 4,请确保在控制器中也允许使用:thing\u token
。尝试此data.serialize()
。请看这里,这个答案实际上解决了这个问题,它将值设置为字符串,从而从值中首先删除[]
。您可以通过将输入值设置为空字符串来避免这些大括号,即。