我正在为一条包含一个字符串数组的记录编写一个ActiveAdmin表单。我们称它们为小部件。我正在使用这样的多选表格:
ActiveAdmin.register Things do
permit_params widgets[]
form do |f|
f.inputs do
...
f.input :widgets,
as: :select,
collection: [],
multiple: true
end
end
end
带有一些Java脚本,可以帮助用户输入其小部件,并且可以将其作为字符串数组交付。但是,在编辑现有记录时,现有record.widgets
不会填充到该字段中,而小部件字段为空白。我怀疑正在发生什么是ActiveAdmin / Formtastic将此选择解释为与Widget的has_many关系,而将字符串解释为Widget ID。 ActiveAdmin忽略了失败。
如何编写输入以使用ActiveAdmin将纯字符串数组传递到模型中?我希望我的参数为params[:thing][:widgets] = ["foo", "bar"]
答案 0 :(得分:0)
通过提供collection: []
,您告诉表单始终以空白数组开头。
您需要向表单提供实际的Thing小部件。您需要修改示例以使其与您编写的选择框/ javascript一起使用-请记住,集合需要一个数组-collection: resource.widgets.split(',')
。