16

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

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

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

ティア、紀元前

4

2 に答える 2

43

これが私自身のアプリからの何かです:

アクセス方法:

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 %>
于 2009-08-05T07:25:07.163 に答える
2

「魔法」の形式では、<=>モデルマッピングform_forが使用されます。(http://api.rubyonrails.org/classes/ActionView/Helpers/FormHelper.html

現在のモデルから何かが必要な場合は、http://api.rubyonrails.org/classes/ActionView/Helpers/FormTagHelper.htmlを使用してみてください

これにより、モデルとは別にタグを追加できます。

radio_button_tag

form_forブロック内

于 2009-08-05T07:21:06.250 に答える