form_for 嵌套在 rails 中

Nested form_for in rails

我有 Test 型号和 User 型号。 Test 模型有很多 users。测试控制器如下。

class TestController
   def create
      Test.create(testparams)
   end

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

在上面的代码中,将创建新的测试。我想为现有 test.How 创建新用户??

您应该能够应用相同的原则。下面是一个基本框架,您必须根据自己的要求进行更改。

测试模型

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 %>