%td
.form-control
= text_field_tag "queue_items[][position]", queue_item.position
Parameters: {"utf8"=>"✓", "authenticity_token"=>"8pWUHvTO4DlVjHuINLlxy8thIn8v8Jm5CfiYYvb1XYQ=", "queue_items"=>[{"position"=>"1"}], "commit"=>"Update Instant Queue"}
In the rails guide:
Combining Them We can mix and match these two concepts. One element of a hash might be an array as in the previous example, or you can have an array of hashes. For example, a form might let you create any number of addresses by repeating the following form fragment
<input name="addresses[][line1]" type="text"/>
<input name="addresses[][line2]" type="text"/>
<input name="addresses[][city]" type="text"/>
This would result in params[:addresses] being an array of hashes with keys line1, line2 and city. Rails decides to start accumulating values in a new hash whenever it encounters an input name that already exists in the current hash.
There’s a restriction, however, while hashes can be nested arbitrarily, only one level of “arrayness” is allowed. Arrays can usually be replaced by hashes; for example, instead of having an array of model objects, one can have a hash of model objects keyed by their id, an array index or some other parameter.