rails: 如何使用 "accepts_nested_attributes" 更新多条记录

rails: how to update multiple records using "accepts_nested_attributes"

假设我有一个 cat 模型和一个 life 模型。假设一只猫 (@cat) has_many 活着,一只猫 accepts_nested_attributes for 活着。 现在,如果我想一次更新 7 个生命 (@lives),使用一个 form_for(@cat),该表格会是什么样子?这是我试过的,但在这种形式中,只有上一世的属性被传递给参数散列:

  <%= form_for(@cat) do |f| %>
    <% @lives.each do |life| %>
      <%= f.fields_for(life) do |l| %>
        <%= l.input :date_of_birth, as: :date %>
      <% end %>
    <% end %>
    <%= f.submit %>
  <% end %>

您需要在控制器中构建属性

@cat = Cat.find(<criteria>)
@cat.lives.build

在您的示例中,您在循环中有一个循环。试试这个:

<%= form_for(@cat) do |f| %>
  <%= f.fields_for(:lives) do |l| %>
    <%= l.input :date_of_birth, as: :date %>
  <% end %>
  <%= f.submit %>
<% end %>