add an array to params

Hello everybody, I hope you can help me in this problem. I need to add an array to params in order to send some data from the view to the controller. I'm using JavaScript to dynamically add lines lihe this:

<li> <input type="text" value="..."> <input type="text" value="..."> <input type="checkbox" checked="checked" value="..."> </li>

Then, after the submit I need to access to the the values in this way:

params[:items].each do |i|   logger.debug("--> #{i[:desc]} ");   logger.debug("--> #{i[:value]} ");   logger.debug("--> #{i[:flag]} "); end

So, I think the proper way is to add te "name" field in this way:

<input type="text" name="items[0][desc]"nvalue="...">

But there is something wrong. Does someone can help me?

Probably. What is wrong? Are you getting any error messages? Have you checked out what params looks like in your controller (puts params.inspect)?

Also check out the html itself to make sure it looks as you expect (View > Page Source or similar in your browser) and look in the Rails log (log/development.log) to see what params are actually passed.

Colin

The problem is that i get all the values in a sibngle field of the array. This is the log of the parameters:

Parameters: {"items"=>{"0"=>{"flag"=>"true", "desc"=>"Description", "value"=>"2"}}, "commit"=>"Create ...

If I try to get the parameters inside the items in this way:

params[:items].each do |i|   logger.debug("--> #{i[:desc]} "); <- row 80   logger.debug("--> #{i[:value]} ");   logger.debug("--> #{i[:flag]} "); end

I get this error

TypeError (Symbol as array index):   app/controllers/pay_checks_controller.rb:80:in `'   app/controllers/pay_checks_controller.rb:80:in `create'   app/controllers/pay_checks_controller.rb:79:in `each'   app/controllers/pay_checks_controller.rb:79:in `create'

But... I can acces with a direct indexing as: items[0] I get "0" and items[1] I get flagtruedescDescriptionvalue2

I found a solution, I have to iterate params[:items] in this way:

params[:items].each do |key, value|   logger.debug("--> #{value[:desc]} "); end

Thanks to all.