2016-08-19 134 views
0

我有Test模型和User模型。 Test模型有很多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

如果谷歌嵌套形式軌,你會發現資源,讓你開始的,衆說紛紜。也許從rails guide,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

更新是工作謝謝你 –