假设我有 cat 模型和生活模型。让我们说一只猫(@cat
)has_many
生活,一只猫accepts_nested_attributes for
生命。
现在,如果我想一次更新7个生命(@lives
),使用一个form_for(@cat)
,那么该形式将如何?这是我尝试过的,但在这种形式下,只有最后一生的属性被传递给params哈希:
<%= 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 %>
答案 0 :(得分:2)
您需要在控制器中构建属性
@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 %>