Hi,
I generated through scaffolding products with name and price. In the products/new’s partial _form.html.erb i made a slight change. Instead of having the user to enter the product. I provide a drop down menu replacing :
<%=f.text_field :name %>
with
<%= select_tag(:name, options_for_select([‘Peas’,‘Butter’,‘Garlic’])) %>
But when I click on submit the name attribute is nil instead of taking the tag I selected.
Please tell me where am I going wrong.
Thanks & Regards.
First of all, options_for_select should be:
options_for_select([['Peas',1],['Butter',2],['Garlic',3]])
In this case it will give you 1 for Peas, 2 for Butter, etc.
In your case you can use it as:
options_for_select(['Peas','Butter','Garlic'].map{ |v| [v,v] })
And after all, I guess you better use `select` helper on a form
builder in your case:
<%= f.select(:name, options_for_select(...)) %>
<%= f.text_field :name%> sets the params array as:
params[:product][:name] (provided you have written <%= form_for :product, … %>)
while <%= select_tag(:name, options_for_select([‘Peas’,‘Butter’,‘Garlic’])) %> sets the params array as:
params[:name] after submit.
Probably, you are accessing the wrong array index.