2016-08-19 93 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

更新是工作谢谢你 –