2016-08-19 4 views
0

Ich habe Test Modell und User Modell. Test Modell hat viele users. Test-Controller ist wie folgt.Verschachtelte Form_for in Schienen

class TestController 
    def create 
     Test.create(testparams) 
    end 

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

In dem obigen Code würde neuer Test erstellt werden. Ich möchte neue Benutzer für einen vorhandenen Test erstellen. Wie geht das?

+0

Wenn Sie Schienen verschachtelte Formen googeln, finden Sie eine Vielzahl von Ressourcen finden Sie den Start. Vielleicht beginnen Sie mit dem Schienenführer, http://guides.rubyonrails.org/form_helpers.html#nested-forms. – margo

+0

Meine Frage ist verschachtelte Form_for des vorhandenen Objekts (in diesem Fall Testobjekt) –

Antwort

2

Sie sollten die gleichen Prinzipien anwenden können. Im Folgenden finden Sie ein Grundgerüst, das Sie je nach Ihren Anforderungen ändern müssen.

Testmodell

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 

Test Ansicht

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

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

Update ist die Sache, die den Job dankt Ihnen –

Verwandte Themen