我有一个模型,其属性为数组。我从表单提交中填充该属性的正确方法是什么?
我知道有一个带有字段名称(包括方括号)的表单输入会从输入中创建一个哈希。我是否应该仅接受它并逐步进入控制器以将其按摩成阵列?
使其抽象程度降低的示例:
class Article
serialize :links, Array
end
links变量采用URL数组的形式,即 [["http://www.google.com"], ["http://stackoverflow.com"]]
当我在表单中使用类似以下内容的内容时,它会创建一个哈希:
<%= hidden_field_tag "article[links][#{url}]", :track, :value => nil %>
产生的哈希看起来像这样:
"links" => {"http://www.google.com" => "", "http://stackoverflow.com" => ""}
如果我未在链接名称中包含url,则其他值会相互干扰:
<%= hidden_field_tag "article[links]", :track, :value => url %>
结果看起来像这样: "links" => "http://stackoverflow.com"