2013-01-24 25 views
5

Vì vậy, trong HTML nếu tôi thực hiện một hình thức như thế này:Rails 2 - Hash dự kiến ​​(đã Array) cho 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> 

Tôi hy vọng params[:categories]

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

Nhưng thay vào đó, đường ray 2 sẽ nâng một TypeError: dự kiến ​​Hash (có Array) cho param

Lỗi được nêu ra ở đây:

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

Tại sao điều này không được phép hoặc không thể phân tích cú pháp trong đường ray? Tôi đang thiếu gì?

Tôi biết tôi có thể chỉ số đầu vào như vậy

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

Và nhận được một Hash. Nhưng điều này có vẻ phản tác dụng.

Trả lời

3

Bạn đã có để đảo ngược thứ tự subscript:

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

Thanks for the help, nhưng đây là một kết quả khác với những gì tôi muốn. Tôi không muốn chỉ là một Array. Tôi muốn một Array of Hashes. Tôi sẽ làm rõ trong bài viết của mình. – vinhboy

+1

nvm. Bạn đúng rồi. Tôi ngu ngốc và bối rối ... Cần ngủ trưa. :( – vinhboy

Các vấn đề liên quan