2009-08-05 1 views
16

親モデルに属するフィールドが1つのみであるにもかかわらず、これは基本的にネストされたフォームの質問です。私のデータ入力フォームはモデルのデータを収集しますが、詳細レコードで作成される親レコードに実際に入るデータ要素/値(UserID)ももう1つ収集する必要があります。複数のモデルを1つのフォームに入力する方法 - どのように

AFAIK Railsは各フォームフィールドがモデルにマップされることを期待しており、私は別々に使用するバインドされていないデータ入力フィールドを作成する必要があります。

このデフォルト動作を無効にし、フリーフォーム/バインドされていないフィールドを作成するにはどうすればよいですか?

TIA、 "魔法" 形< =>モデルマッピングform_forについて

BC

答えて

43

内部例えば

radio_button_tag 

を追加することができます自分のアプリから何かを得ます:

アクセス:

params[:company] and params[:user] 

コントローラー:

@company = Company.new 
@user = User.new 

ビュー:

<% form_for @company, :url => companies_path do |f| %> 
    <%= f.error_messages %> 
    <p> 
    <%= f.label :name %><br /> 
    <%= f.text_field :name %> 
    </p> 
    <p> 
    <%= f.label :website %><br /> 
    <%= f.text_field :website %> 
    </p> 
<hr /> 
    <% fields_for @user do |u| %> 
    <p> 
     <%= u.label :email %><br /> 
    <%= u.text_field :email %> 
    </p> 
    <p> 
     <%= u.label :username %><br /> 
    <%= u.text_field :username %> 
    </p> 
    <p> 
     <%= u.label :password %><br /> 
    <%= u.password_field :password %> 
    </p> 
    <p> 
    <%= u.label :password_confirmation %><br /> 
    <%= u.password_field :password_confirmation %> 
    </p> 
    <% end %> 
    <p> 
     <%= f.submit "Submit" %> 
    </p> 
<% end %>