Вложенный 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

В приведенном выше коде будет создан новый тест. Я хочу создать новых пользователей для существующего теста. Как это сделать??


person rohan kharvi    schedule 19.08.2016    source источник
comment
Если вы погуглите вложенные формы rails, вы найдете множество ресурсов, которые помогут вам начать работу. Возможно, начнем с руководства по рельсам, guides.rubyonrails.org/form_helpers.html#nested-forms .   -  person margo    schedule 19.08.2016
comment
Мой вопрос касается вложенной формы form_for существующего объекта (в данном случае тестового объекта)   -  person rohan kharvi    schedule 19.08.2016


Ответы (1)


Вы должны уметь применять те же принципы. Ниже приведена базовая структура, которую вам придется изменить в зависимости от ваших требований.

тестовая модель

accepts_nested_attributes_for :users, allow_destroy: true

тесты_контроллер

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 %>
person margo    schedule 19.08.2016