【发布时间】:2013-09-30 02:09:01
【问题描述】:
在 Rails 应用程序中,我遇到了一个情况,我希望有一个以方括号结尾的复选框名称,例如:
name="foo[bar][baz[]]"
其他特殊字符似乎得到了正确处理,但看起来 Rails 正在剥离方括号并将它们视为声明数组而不是名称的一部分。需要做什么来允许此名称中的任意字符(特别是括号)并让 Rails 正确处理它们?
【问题讨论】:
-
如果您想将一组元素分配给您正在寻找的变量
name="foo[bar][baz][]" -
你能解释一下你想做什么吗?
-
我试图支持复选框名称中的所有字符(我猜除了空格,HTML5 规范禁止)。我注意到,当我尝试命名一个
baz[]时,由于 Rails 关于方括号的逻辑,它没有得到正确处理。我想知道是否有办法转义括号(和其他特殊字符?),以便它们正确通过。 -
没有。不要告诉我您的编程解决方案,因为它显然是错误的。给我看代码并用简单的话解释你想要得到什么结果。
-
代码是
<input name="foo[bar][baz[]]" type="checkbox" value="1">。我期待params包含foo的{"bar"=>{"baz[]"=>"1"}}键。相反,该键的值是{"bar"=>{"baz"=>[nil]}}。
标签: ruby-on-rails arrays forms escaping square-bracket