【发布时间】:2014-10-15 04:58:49
【问题描述】:
我正在使用 has_many through 关系实现 select2 标记。我的实现有两种不同的场景。
- 选择菜单允许多个(标记),但不允许动态输入到选择菜单中。
- 与上述相同,但使用 ajax 允许用户即时输入新的选择值。
场景 1 非常适合标记。方案 2 似乎工作(可以执行标记),但不保存值。我的问题似乎归结为我的场景输入元素。
场景 1 用途:
<%= f.association :repairers, label_method: :rep_name, value_method: :id, include_blank: true, label: 'Repairer'%>
当提交表单时,会给出类似于:
"repairer_ids"=>["", "1132", "1131"]
场景 2 用途:
<%= f.hidden_field :repair_type_id, :class => "required on-the-fly-select select"%>
并使用大量 js 代码来实现选择菜单的动态输入。提交表单后,数据将如下所示:
"repair_type_id"=>"5688,5690"
所以在场景 2 中,id 不会作为数组提交。我尝试将选择更改为:
<%= hidden_field_tag("repair_item[repair_type_ids][]", "", :id => "repair_item_repair_type_ids", :class => "required on-the-fly-select select") %>
但随后相关参数提交错误且不保存:
"repair_type_ids"=>["5688,5690"]
是否可以从 场景 2 中获取参数以 Rails 在 场景 1 中制作参数的格式提交?
【问题讨论】:
-
为什么不能使用
splitruby 方法将该数据字符串转换为数组并存储到数据库中
标签: ruby-on-rails ruby-on-rails-4 jquery-select2 has-many-through