How to control parameters through “a name attribute” of form in Rails
2 min readSep 16, 2019
We can control parameters through a name attribute of form. The send parameters are up to the form of the name attribute. In this article, I show which form of the name attribute makes which parameter. Basically, a vacant array before a value encloses the whole hash parameter and it can be used only one time, while the vacant array after the value encloses value itself with an array and it can be used twice.
Cases1
<div class="field"><%= form.label :name %><%= form.text_field :name, name: 'book[name]' %></div><div class="field"><%= form.label :page_number %><%= form.number_field :page_number, name: 'book[page_number]' %></div>
is
"book"=>{"name"=>"test", "page_number"=>"1"}
Cases2
<div class="field"><%= form.label :name %><%= form.text_field :name, name: 'book[][name]' %></div><div class="field"><%= form.label :page_number %><%= form.number_field :page_number, name: 'book[][page_number]' %></div>
is
"book"=>[{"name"=>"test", "page_number"=>"1"}]
Cases3
<div class="field"><%= form.label :name %><%= form.text_field :name, name: 'book[name][]' %></div><div class="field"><%= form.label :page_number %><%= form.number_field :page_number, name: 'book[page_number][]' %></div>
is
book"=>{"name"=>["test"], "page_number"=>["1"]}
Cases4
<div class="field"><%= form.label :name %><%= form.text_field :name, name: 'book[name][][]' %></div><div class="field"><%= form.label :page_number %><%= form.number_field :page_number, name: 'book[page_number][][]' %></div>
is
"book"=>{"name"=>[["test"]], "page_number"=>[["1"]]}
Cases5
<div class="field"><%= form.label :name %><%= form.text_field :name, name: 'book[][name][]' %></div><div class="field"><%= form.label :page_number %><%= form.number_field :page_number, name: 'book[][page_number][]' %></div>
is
"book"=>[{"name"=>["test"], "page_number"=>["1"]}]
Cases6
<div class="field"><%= form.label :name %><%= form.text_field :name, name: 'book[][][name]' %></div><div class="field"><%= form.label :page_number %><%= form.number_field :page_number, name: 'book[][][page_number]' %></div>
is
"book"=>[{"name"=>"test", "page_number"=>"1"}]
Cases7
<div class="field"><%= form.label :name %><%= form.text_field :name, name: 'book[name][][][]' %></div><div class="field"><%= form.label :page_number %><%= form.number_field :page_number, name: 'book[page_number][][][]' %></div>
is
"book"=>{"name"=>[], "page_number"=>[]}
Cases8
<div class="field"><%= form.label :name %><%= form.text_field :name, name: 'book[][name][][]' %></div><div class="field"><%= form.label :page_number %><%= form.number_field :page_number, name: 'book[][page_number][][]' %></div>
is
"book"=>[{"name"=>[["test"]], "page_number"=>[["1"]]}]
Cases9
<div class="field"><%= form.label :name %><%= form.text_field :name, name: 'book[][][name][]' %></div><div class="field"><%= form.label :page_number %><%= form.number_field :page_number, name: 'book[][][page_number][]' %></div>
is
"book"=>[{"name"=>["test"], "page_number"=>["1"]}]
Cases10
<div class="field"><%= form.label :name %><%= form.text_field :name, name: 'book[][][][name]' %></div><div class="field"><%= form.label :page_number %><%= form.number_field :page_number, name: 'book[][][][page_number]' %></div>
is
"book"=>[{"name"=>"test", "page_number"=>"1"}]