2012-05-14 2 views
0

주 컨테이너 모델에 속한 components 모델이 있습니다. components 모델의 모델은 serversservices입니다. 내 컨트롤러에서 나는이 코드로 fields_for을 설정하기 때문에 각 두 가지를 렌더링 제외하고는 기본적으로 모두 괜찮 : 나는 여러 형태를 받고있는 이유여러 개의 has_many 관계가있는 모델에 대해 fields_for 렌더링

@reference.components.build.servers.build 
@reference.components.build.services.build 

그래서 분명하다, 구축 할 수있는 방법이 있나요 한 줄에 has_many 관계가 있습니까? 나는 시도했다 :

@reference.components.build.servers.build.services.build 

1.times { @reference.components.build.servers.build } 
1.times { @reference.components.build.services.build } 

UPDATE 주셔서 감사합니다 - (난 그냥 추측했다)

작동하는 것 같다 블록에 코드를 이동>

@reference.components.build do |f| 
    f.servers.build 
    f.services.build 
end 

코드가 컨트롤러에 있습니다.

답변

1

중요한 것은 한 번만 components.build를 호출하는 것입니다, 그렇지 않으면 당신은 통화 당 하나 개의 구성 요소가 잘 작동합니다 예를

component = @reference.components.build 
component.servers.build 
component.services.build 

를 들어

를 구축하는 추가됩니다. 우연히 발견 한 블록 형식은 같은 결과를 얻습니다 (3.2에 추가 된 것, 3.2 이후의 부 릴리스 중 하나임).

+0

응답에 대해 감사드립니다. 나는 여전히 레일 3.1.3을 사용하고 있지만 해결책을 가져 주셔서 감사합니다. 그건 의미가 있습니다, 나는 그것이 일종의 그것을 얻는 방법을 모르겠다는 것을 알았습니다. 나는 변하기 쉬운 해결책을 좋아한다. 감사 :) – Lsdafjklsd

관련 문제