Rails 2 - 预期参数为哈希表(得到数组)

5

如果我在HTML中创建了这样的表单:

<form method="post">
<input type="text" name="categories[][name]" />
<input type="text" name="categories[][name]" />
<input type="text" name="categories[][name]" />
<input type="text" name="categories[][name]" />
<input type="submit" value="submit" />
</form>

我希望params[:categories]

[{"name"=>"value"},{"name"=>"value"},{"name"=>"value"},{"name"=>"value"}]

但是在Rails 2中会触发TypeError:期望参数为Hash(得到了Array)的错误。

错误发生在这里:

http://apidock.com/rails/Rack/Utils/normalize_params

为什么在Rails中不允许或无法解析此内容?我错过了什么吗?

我知道我可以像这样对输入进行索引:

<input type="text" name="categories[0][name]" />
<input type="text" name="categories[1][name]" />
<input type="text" name="categories[2][name]" />
<input type="text" name="categories[3][name]" />

获取一个哈希值。但这似乎是适得其反的。
1个回答

3

您需要颠倒下标的顺序:

<input type="text" name="categories[name][]" />

谢谢您的帮助,但这不是我想要的结果。我不只想要一个数组,我想要一个哈希数组。我会在我的帖子中澄清。 - vinhboy
1
nvm。你是对的。我很愚蠢和困惑...需要小睡一下。:( - vinhboy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接