У меня есть следующее поле выбора, созданное с использованием вложенной формы:
<select name="product[shop_attributes][id]" id="product_shop_attributes_id">
<option value="23">KMART</option>
<option value="24">Super Shop</option>
<option selected="selected" value="22">TARGET</option>
<option value="new">Create New Shop</option>
</select>
selected="selected"
было создано путем передачи параметров :selected => "22"
в f.select
.
Проблема заключается вчто независимо от того, какая опция выбрана, переданное значение всегда равно "22"
.
. Я заметил, что создается скрытый ввод, который, как я считаю, вызывает проблему:
<input type="hidden" value="22" name="product[shop_attributes][id]" id="product_shop_attributes_id">
Таким образом,Есть 2 элемента с id=product_shop_attributes_id
.
Что может вызвать создание этого скрытого поля ввода?
Соответствующий код создания поля выбора:
<%= form_for @product do |f| %>
<%= f.fields_for :shop do |sf| %>
sf.select(:id, <options>, {:prompt => true, :selected => <default_value>})
<% end %>
<% end %>
Соответствующий код контроллера:
def edit
@product = Product.find(params[:id]) # the select box indeed gets it's initial value from @product
end
def update
@temp = params.inspect
end
update.html.erb:
<%= @temp %>
Здесь я всегда вижу то же самое (независимо от того, какая опция выбрана):
"product"=>{"shop_attributes"=>{"id"=>"22"},...}