我有一个模型,它的属性是数组。我从表单提交中填充该属性的正确方法是什么?
我知道表单输入的名称包含括号的字段会根据输入创建哈希值。我是否应该在控制器中逐步执行它以将其按摩到数组中?
使其不那么抽象的示例:
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"