2012-04-20 6 views
0

나는 has_many 주소와 많은 전화 번호를 가진 회사 모델을 가지고있다.accepts_nested_attributes_for를 수정하는 방법은 무엇입니까?

주소 belong_to 회사 전화 번호 (들).

내 문제는 내가 edit 회사의 특정 주소 및 전화 번호를 이해하는 방법이 없다는 것입니다. 내 edit 행동

, 나는 (즉 @address = 일부 내가 원하는 특정 주소를 검색 범위) 한 다음 내 fields_for I 참고 문헌이 아이의 속성에, 전 특정 레코드를 호출하고 인스턴스 변수에 할당 :

<%= f.fields_for :addresses, @address do |address| %> 

)이 방법을 사용할지 잘 모르겠습니다. 편집을 위해 부모의 특정 하위 항목에 액세스하는 방법에 관한 문서는 드물습니다. 에서 겉으로는 다음 레코드 - update는, 성공이 실패 할 때 내가보기가 부모의 현재의 아이 (I 내 edit 행동에 지정된 + 다른 어린이와 추가 필드를 제공 render :edit 경우이 잘 작동하지만

B) 선).

기본적으로 render :edit을 호출하면 기본적으로 두 개의 자식으로 양식이 확장됩니다. 기묘한.

이 문제는 무엇입니까? 중첩 된 속성은 어떻게 작동합니까? 여러 개의 연관된 모델로 양식을 관리하는 더 좋은 방법이 있습니까?

감사합니다.

+0

정확하게 따르고 있는지 잘 모르겠습니다. 주소를 수정하려고한다고 말하면 부모를 포함하는 양식을 통해 그렇게하고 있습니까 아니면 자체 양식으로 주소록을 편집하려고합니까? 나는 당신의 설명이 후자와 같다고 생각할 것이다. – miked

+0

예, 편집 할 때 전체 중첩 세트를 편집하려고합니다. 내가 dmarucco에 남긴 의견보기. – Nathan

+0

사실, 귀하의 의견을 몇 가지 생각 (그리고 fields_for 메서드에 대한 좀 더 연구) 후, 나는 fields_for 그 협회의 각 레코드를 통해 루프를 깨달았다. fields_for가 반복하는 전체 세트가 아닌 단일 레코드 만 선택하려고했습니다. 하지만 내가 당신의 의견을 더 많이 생각해봤을 때, 나는 실제로 루프를 원한다. 단일 주소 인스턴스 만 편집하려는 경우 별도의 양식을 작성할 수 있습니다. 그러나 중첩 된 기록으로, 저는 모든 아이들을 원합니다. 나는 그걸 처음에는 이해하지 못했습니다. 너무 나쁜 당신이 대답으로 게시하지 않았다 ;-) – Nathan

답변

1

여기서는 그 목적 외에도 fields_for 헬퍼를 사용하는 것 같습니다. 설명하신 내용에서 부모 관계가 아닌 주소를 수정하고 싶습니다. 이 경우 form_for 도우미를 사용하여 해당 주소를 자체 양식 (및 자체 컨트롤러)으로 편집합니다.

fields_for는 부모와 동일한 형식으로 CRUD 작업을 수행하고 accepts_nested_attributes_for 기능을 활용하려는 경우에 사용됩니다.

-1

스크린 캐스트 당신은 수천 단어 이상을 도울 수 있습니까?

+0

위 내용은 훌륭하지만 레코드 편집 방법을 보여주지는 않습니다. 내 문제는 복잡한 양식을 만드는 것이 아니라 기존의 중첩 세트를 편집하는 것입니다. 그래서 회사> 주소가 있다면 엔트리를 만들고 comany 테이블에 레코드가 있고 관련 주소 테이블에 레코드가 있습니다. 그런 다음 나중에 다른 항목 (회사의 두 번째 레코드 및 주소의 두 번째 레코드 만들기)을 추가하면 폼에 매개 변수를 전달하여 편집 할 항목을 선택할 수 있습니까? – Nathan

0

도전적으로 다음 화면이 dmarucco 중첩 된 형태의 좋은 일반적인 이해를 얻기 위해 게시 됨 캐스트 시청 (I를 내가 중첩 된 형태로 이곳에 있던 문제를 체크 아웃

Rails 3.1+ Nested Forms Issue: Can't mass-assign protected attributes

I의 POS : 너무) 많은 관계로 많은 있었다 그 페이지의 하단에 내 솔루션을 ted.

나는 또한 내 중첩 된 형태의 서식 nested_formsimple_form 보석을 사용, 그래서 당신이 올바른 경로에 당신을 설정하는

희망을 조사 할 수 있습니다!

관련 문제