2010-12-20 12 views
1

なぜ、この:Rails 3:空のネストされたフォームが隠れた入力フィールドを生成するのはなぜですか?

<input type="hidden" value="23" name="product[shop_attributes][id]" id="product_shop_attributes_id"> 

# edit.html.erb 
<%= form_for @product do |f| %> 
    <%= f.fields_for :shop do |sf| %> 
    # Nothing here 
    <% end %> 
<% end %> 

は、非表示の入力フィールドを生成しますか?

関連するコントローラコード:

def edit 
    @product = Product.find(params[:id]) 
end 

答えて

6

あなたが編集している@productが店を持っているので、それは可能でしょう。 Railsはこれをfields_forに挿入して、フォームがサブミットされたときにネストされた属性がどのショップのものかを知るようにしています。これはデフォルトのネストされた属性の動作です。

+0

ありがとうございます。 –

+0

これに関連する問題が発生しています。私は、非表示フィールドに編集する代わりに、サブミットしたときにデータベースに新しいインスタンスを挿入する編集フォームを持っています。私は答えを探す方向を知らない –

関連する問題