Reputation: 10208
My question is quite simple, I have a plain HTML form (no helpers, no models) and I want to send the parameters so params dictionary appears to be an array.
This is my code:
<div class="headers_line">
<div class="header_field">
<input type="text" placeholder="Header name" name="header[0][name]" class=
"parameter_input" />
</div>
<div class="header_field">
<input type="text" placeholder="Value" name="header[0][value]" class=
"parameter_input" />
</div>
</div>
<div class="headers_line">
<div class="header_field">
<input type="text" placeholder="Header name" name="header[1][name]" class=
"parameter_input" />
</div>
<div class="header_field">
<input type="text" placeholder="Value" name="header[1][value]" class=
"parameter_input" />
</div>
</div>
<div class="headers_line">
<div class="header_field">
<input type="text" placeholder="Header name" name="header[2][name]" class=
"parameter_input" />
</div>
<div class="header_field">
<input type="text" placeholder="Value" name="header[2][value]" class=
"parameter_input" />
</div>
</div>
And this is what my params looks like:
"header"=>{"0"=>{"name"=>"jnjnnj", "value"=>"nnjjn"}, "1"=>{"name"=>"jnnjjn", "value"=>"jnjnnj"}, "2"=>{"name"=>"jnjnjnjn", "value"=>"jnnj"}, "3"=>{"name"=>"", "value"=>""}}
Trying to use header[][name] and header[][value] didn´t work either.
Thanks
Upvotes: 1
Views: 2880
Reputation: 10208
Ok, based on @house9 comment I did the following:
I used header[name][]
and header[value][]
Then I created an array of hashes by doing:
headers = params[:header][:name].zip(params[:header][:value])
Upvotes: 1
Reputation: 1208
Sorry, I was totally confused in the previous answer.
params[:header].values.map(&:symbolize_keys)
will give you the array you want.
You cannot get it directly.
Upvotes: 1