【发布时间】:2020-02-06 16:01:21
【问题描述】:
我正在尝试使用 rails 中的 form_for 同时更新来自 User 模型的两个对象。原因是一个人可以更新自己和配偶(两个不同的用户)的基本信息,而无需填写两个单独的表格。
我当前用于更新一个用户的代码如下所示:
<%= form_for(@user, :url=> wizard_path, :method => :put) do |f| %>
<div class="form-group form-question-group">
<%= f.label :state, "What state do you live in?", class: "form-question" %>
<%= f.select(:state, options_for_select(us_states, selected: @user.state), {:prompt => "State"}, :class => "form-control", :required => true) %>
<%= f.hidden_field :user_id, value: @user.id %>
</div>
<div class="form-buttons">
<%= link_to "Back", previous_wizard_path, :class => "align-left" %>
<%= f.submit "Continue", :class => "btn btn-primary align-right" %>
</div>
<% end %>
如何编辑此表单,以便在提交时不仅更新当前用户,还更新用户的配偶(可以通过@user.spouse 访问)。
【问题讨论】:
-
此表单是否只处理可能有配偶的用户(丈夫)?它是否也处理可能有丈夫的用户(配偶)?您可以在模型中使用嵌套属性 (api.rubyonrails.org/classes/ActiveRecord/NestedAttributes/…),并使用 fields_for api.rubyonrails.org/classes/ActionView/Helpers/… 来实现此目的。
标签: ruby-on-rails forms form-for