使用嵌套表单,通过一个提交按钮更新两个非关联模型
Update two non-associated models with one submit button, using nested form
我有一个 User
控制器,它拥有以下两个记录:
user.vehicles
来自 VehiclesController
user.trip_distances
来自 TripDistancesController
在 Vehicles
视图中,我需要显示和更新两个模型(Vehicle
和 TripDistance
)
我发现我需要使用 nested form
。但是,我不明白如何实现它,因为我的 @trip_distances
记录需要一个循环才能显示其所有内容。
首先,我试图将它放入 Vehicle
模型中,但由于两者都没有链接,我想知道这是否正确:
accepts_nested_attributes_for :trip_distances, allow_destroy: true
然后,在 Vehicle
视图的 _form
文件中,在 edit
操作期间,我有:
<%= form_for(@vehicle) do |f| %>
我需要将我的嵌套表单放入其中。这是我到目前为止得到的:
<% @trip_distances.each do |t| %>
<%= f.fields_for t do |fields| %>
<div class="field">
<%= fields.text_field :id_contract %>
<%= fields.number_field :length %>
</div>
<% end %>
<% end -%>
我的 trip_distances
记录可以正确显示,但唯一的提交按钮不再起作用。我想在单击一个按钮的同时更新两个模型。我错过了什么?
我能够通过关联这两个模型来使其工作。然后我使用以下 fields_for 标签:
<%= f.fields_for :trip_distances do |builder| %>
我的提交按钮现在可以使用了,但是 :trip_distances 字段没有更新,我不知道为什么。
我有一个 User
控制器,它拥有以下两个记录:
user.vehicles
来自 VehiclesController
user.trip_distances
来自 TripDistancesController
在 Vehicles
视图中,我需要显示和更新两个模型(Vehicle
和 TripDistance
)
我发现我需要使用 nested form
。但是,我不明白如何实现它,因为我的 @trip_distances
记录需要一个循环才能显示其所有内容。
首先,我试图将它放入 Vehicle
模型中,但由于两者都没有链接,我想知道这是否正确:
accepts_nested_attributes_for :trip_distances, allow_destroy: true
然后,在 Vehicle
视图的 _form
文件中,在 edit
操作期间,我有:
<%= form_for(@vehicle) do |f| %>
我需要将我的嵌套表单放入其中。这是我到目前为止得到的:
<% @trip_distances.each do |t| %>
<%= f.fields_for t do |fields| %>
<div class="field">
<%= fields.text_field :id_contract %>
<%= fields.number_field :length %>
</div>
<% end %>
<% end -%>
我的 trip_distances
记录可以正确显示,但唯一的提交按钮不再起作用。我想在单击一个按钮的同时更新两个模型。我错过了什么?
我能够通过关联这两个模型来使其工作。然后我使用以下 fields_for 标签:
<%= f.fields_for :trip_distances do |builder| %>
我的提交按钮现在可以使用了,但是 :trip_distances 字段没有更新,我不知道为什么。