Rails - 单个表单上多个模型的用户输入 - 如何

Bre*_*anC 16 ruby-on-rails insert-update nested-forms

这基本上是一个嵌套的表单问题,尽管只有一个属于父模型的字段.我的数据输入表单收集模型的数据 - 但是我还需要收集一个实际进入将使用详细记录创建的父记录的数据元素/值(UserID).

AFAIK Rails希望每个表单字段都映射到一个模型,我需要创建一个我将单独使用的未绑定数据输入字段.

如何覆盖此默认行为并创建"自由格式/未绑定字段"?

TIA,BC

Gar*_*ett 43

继承我自己的应用程序:

访问它:

params[:company] and params[:user]
Run Code Online (Sandbox Code Playgroud)

控制器:

@company = Company.new
@user = User.new
Run Code Online (Sandbox Code Playgroud)

视图:

<% 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 %>
Run Code Online (Sandbox Code Playgroud)


小智 2

对于“神奇”形式 <=>form_for使用模型映射。(http://api.rubyonrails.org/classes/ActionView/Helpers/FormHelper.html

如果您需要当前模型中的某些内容,请尝试使用http://api.rubyonrails.org/classes/ActionView/Helpers/FormTagHelper.html

这样您就可以添加与模型分开的标签,例如

radio_button_tag
Run Code Online (Sandbox Code Playgroud)

form_for块内