Может ли один simple_form создавать экземпляры нескольких моделей? - PullRequest
0 голосов
/ 17 сентября 2018

Я получил simple_form для testrun модели с несколькими флажками, которые сохраняют массив тестовых случаев в поле модели

Приложение / просмотров / testruns / _form.html.erb

<%= simple_form_for @testrun do |f| %>
  <%= f.input :testcase, as: :check_boxes,
      collection: [["testcase1", :testcase1], ["testcase2", :testcase2], ... ]%>
  <%= f.submit %>
<% end %>

Работает нормально, но теперь мне нужно создать другую модель под названием testcase. После отправки формы, кроме создания нового testrun экземпляра, мне нужно создать testcase экземпляров, которые зависят от каждого проверенного флага.

Есть идеи, как мне это сделать?

1 Ответ

0 голосов
/ 17 сентября 2018

Вам нужно использовать accepts_nested_attributes_for и simple_fields_for.Предполагая, что у вас есть has_many :testcases в Testrun и имя поля Testcase равно name, следующие шаги должны направить вас в правильном направлении.

#app/models/testrun.rb
accepts_nested_attributes_for :testcases

#app/controllers/testrun_controller.rb
def new
  @testrun = Testrun.new
  @testrun.testcases.build
end

private
def testrun_params
  params.require(:testrun).permit(:field1, :field2.., testcases_attrubtes: [name: []])
end

#app/views/testruns/_form.html.erb
<%= simple_form_for @testrun do |f| %>
  <%= f.simple_fields_for :testcases do |testcase| %>
    <%= testcase.input :name, as: :check_boxes,
      collection: [["testcase1", :testcase1], ["testcase2", :testcase2], ... ]%>
  <% end %>
  <%= f.submit %>
<% end %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...