rails中嵌套的form_for



我有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。我想为现有的测试创建新用户。怎么做?

您应该能够应用相同的原则。下面是一个基本的框架,你可以根据自己的需求进行修改。

测试模型

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

最新更新