2013-01-24 24 views
5

所以在HTML,如果我犯了這樣一種形式:梁2 - 預期散列(有陣列)的PARAM

<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"}] 

但是,相反,軌道2將引發TypeError:預計哈希(有陣列)的PARAM

在這裏引發的錯誤:

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]" /> 

的輸入,並獲得哈希值。但是這似乎適得其反。

回答

3

你必須扭轉標順序:

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

感謝您的幫助,但是這是一個不同的結局不是我想要的。我不想要一個數組。我想要一個哈希數組。我會在我的帖子中澄清。 – vinhboy

+1

nvm。你是對的。我很愚蠢和困惑...需要打盹。 :( – vinhboy