【发布时间】:2011-03-06 14:43:58
【问题描述】:
我有一个具有数组属性的模型。我从表单提交中填充该属性的正确方法是什么?
我知道有一个表单输入,其名称包含括号的字段会从输入中创建一个哈希。我应该把它拿走并在控制器中单步调试它以将它按摩成一个数组吗?
减少抽象的例子:
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"
【问题讨论】:
标签: ruby-on-rails arrays forms hash