2016-08-19 8 views
0

Test 모델과 User 모델이 있습니다. 모델에 많은 users이 있습니다. 테스트 컨트롤러는 아래와 같습니다.중첩 된 form_for 레일 있음

class TestController 
    def create 
     Test.create(testparams) 
    end 

    private 
    def testparams 
     params.require(:test).permit(:test_name,user_attributes:[:user_name]) 
    end 
end 

위의 코드에서 새 테스트가 생성됩니다. 기존 테스트를 위해 새로운 사용자를 만들고 싶습니다. 어떻게해야합니까 ??

+0

당신이 형태의 중첩 된 레일을 구글하면, 당신은 당신이 시작하는 자원의 다수를 찾을 수 있습니다. 아마 레일 가이드 http://guides.rubyonrails.org/form_helpers.html#nested-forms에서 시작하십시오. – margo

+0

제 질문은 기존 객체 (이 경우 테스트 객체)의 중첩 된 form_for에 대한 것입니다 –

답변

2

동일한 원칙을 적용 할 수 있어야합니다. 다음은 요구 사항에 따라 변경해야하는 기본 프레임 워크입니다.

테스트 모델

accepts_nested_attributes_for :users, allow_destroy: true 

tests_controller

def edit 
    @test = Test.find(params["id"] 
    @test.users.build 
end 

def update 
    @test = Test.find(params["id"] 
    @test.update(testparams) 
end 

시험보기

<%= form_for @test do |f| %> 
    <%= f.text_field :test_name %> 

    <%= f.fields_for :users do |uf| %> 
    <%= uf.text_field :user_name %> 
    <% end %> 
<% end %> 
+0

업데이트는 u에게 일을 해주는 것입니다 –