0

고양이 모델과 수명 모델이 있다고 가정 해 봅니다. 고양이 (@cat) has_many이 살고 고양이는 accepts_nested_attributes for입니다. 이제 form_for(@cat)을 사용하여 7 개의 생명 (@lives)을 한 번에 업데이트하고 싶다면, 그 양식은 어떻게 생겼을까요? 이것은 내가 무엇을 시도했다, 그러나이 양식의 마지막 삶에 대한 속성 만이 PARAMS 해시에 전달됩니다rails : "accepts_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

아니요; 내 문제는 컨트롤러 동작이 아니라 어떻게 params 해시로 모든 일생에 대한 입력 "date_of_birth"을 전달하는 것입니다. 그래서 나는 params 해시를 다음과 같이보고 싶습니다. – BerryGJS

+0

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

+0

그리고 (cat-) 컨트롤러에서 loop through params [: cat] [: lives] 및 생명을 업데이트하십시오. – BerryGJS