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 %>
假设我有一个 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 %>