使用Select2将ID传递给Rails

时间:2014-02-13 13:40:43

标签: 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) ->
      results: data
  formatResult: (data) -> data.name
  formatSelection: (data) -> data.name

提交带有所选内容的表单我正在

"thing_ids"=>"[],3,2"

即。初始值(空方括号)和所选事物的ID 。但我想跟随

"thing_ids"=>"[3,2]"

Select2可以吗?我做错了什么?

更新

为了避免在开头使用大括号,请在创建输入元素时使用 value =“”

1 个答案:

答案 0 :(得分:3)

问题是Select2发回一个字符串列表项,例如"thing_ids" => "1,2,3"。以这种方式使用Select2时我所做的是为thing_tokensthing_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