私は、ネストされたフォームを使用して作成された以下の選択ボックスがあります。Rails 3:なぜ選択ボックスが正しい値を渡しませんか?
<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"
です。 id=product_shop_attributes_id
との2つの要素があり、そのため
<input type="hidden" value="22" name="product[shop_attributes][id]" 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 %>
オプションi選択されたレール:
選択する必要はありません。選択 - モデルフォームを使用しています。あなたはselect_tagでそれを必要とします。 –
私は同意します、ありがとう! –