0

比方说,我有一个模型和生活模型。并且让我们说一只猫(@cathas_many生活,和一只猫accepts_nested_attributes for一生。 现在,如果我想一次更新7次生命(@lives),使用一个form_for(@cat),那么这个表格将如何?这是我尝试过,但以这种形式仅在过去的生活中的属性被传给params哈希表:rails:如何使用“accepting_nested_attributes”更新多个记录

<%= 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 %> 

回答

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 %> 
+0

不行;我的问题不是控制器行为,而是如何将所有7条生命的输入“date_of_birth”传递给params散列。所以我想看看params散列如下: – BerryGJS

+0

“cat”=> {“lives”=> {{“life01”=> {“date_of_birth”=>“01-01-1950”}}, { “life02”=> {“date_of_birth”=>“01-01-1951”}}, etcetc } – BerryGJS

+0

然后在(cat-)控制器中循环params [:cat] [:lives]和更新生活。 – BerryGJS