Rail 5: сохранение полей из цикла во вложенной форме

У меня есть приложение, где пользователи могут запросить участие в мероприятиях. Когда администраторы создают События, они добавляют Пространства, которые будут доступны для подачи заявки (например, "столы", "стойки" и т. Д. И их цену).

Когда пользователь инициализирует мастер запросов, запрос автоматически создается, и для запроса автоматически создается RequestSpace, по одному для каждого из Event.spaces, со значением по умолчанию, равным 0. Пользователь может запросить желаемую сумму каждого тип пространства путем увеличения числа в форме.

Это похоже на корзину, в которой пользователь меняет количество товара в числовом поле, за исключением того, что здесь продукты (пробелы) предопределены событием.

Это означает, что форма запроса получает числовое поле для каждого ассоциированного пространства запросов. У меня есть эта форма рендеринга в представлении, и она выглядит так, как я хочу. Проблема в том, что я не знаю, как сохранить каждую строку в действии обновления в контроллере запросов.

Соответствующий код из моделей:

class Event < ApplicationRecord  
  has_many :requests, dependent: :destroy
  has_many :spaces, dependent: :destroy
...

class Space < ApplicationRecord
  belongs_to :event
  has_many :request_spaces
...

class Request < ApplicationRecord
  belongs_to :event
  has_many :request_spaces
  accepts_nested_attributes_for :request_spaces
...

class RequestSpace < ApplicationRecord
  belongs_to :request
  belongs_to :space
...

Форма:

<%= form_for(@request, local: true) do |form| %>
  ...
  <% @request.request_spaces.each do |rs| %>
    <%= form.fields_for :request_spaces, rs do |s| %>
      <%= s.number_field :amount, min: "0", max: "#{rs.space.max_amount}" %>
    <% end %>
  <% end %>
  ...
<% end %>

Сильные параметры в request_controller.rb:

params.require(:request).permit(<other params omitted>, reqeust_spaces_attributes:[:id, :amount])

Когда я сохраняю изменения в форме, поле RequestSpaces: amount не обновляется. Есть идеи, как решить эту проблему в контроллере?

РЕДАКТИРОВАТЬ:

Этот SO вопрос / ответ описал аналогичную проблему и вдохновил решение цикла для полей формы: Rails просматривает данные в поле формы

0 ответов

Другие вопросы по тегам