Как сохранить переменное количество аргументов одного и того же типа и того же имени в Rails? - PullRequest
0 голосов
/ 09 октября 2019

Форма отправляется в рельсах, которые имеют переменное число выставленных счетов, с логическим значением true или false. Как я могу получить все эти значения и сохранить их в базе данных в соответствующих полях:
Параметры запросакак:

        <ActionController::Parameters {"utf8"=>"✓", "authenticity_token"=>"cCQjRuaHnsIkCaffZfi6t3err4YPxrEWXSXNKy4gFmDUOtWt+T4JALddxkJWo/7giXD3dNXlvJz9tJ0EYDKKjQ==",
     "invoiced_186"=>"1", "invoiced_187"=>"1", "invoiced_188"=>"1",
     "invoiced_189"=>"1", "invoiced_190"=>"1",
 "commit"=>"save", "controller"=>"cader/caders", "action"=>"add_invoiced_items", "id"=>"63813"} permitted: false>

Форма в форме:

          <%= form_with url: cader_add_invoiced_items_path(@job_checkout.id), local: true do |f| %>
        <table class="table table-bordered table-striped">
          <thead>
          <th>Item #</th>
          <th>File</th>
          <th>Service</th>
          <th>Price $USD</th>
          <th>Invoice</th>
          </thead>
          <tbody>
          <% @done_job.each do |done_job| %>
            <tr>
              <td>
                <%= f.check_box :"invoiced_#{done_job.id}" %>
                <label>
                  <%= done_job.id %>
                </label>
              </td>
              <td><%= done_job.file_name %></td>
              <td><%= done_job.service %></td>
              <td>$<%= done_job.amount %></td>
              <td></td>
            </tr>
          <% end %>
          </tbody>
        </table>
        <%= f.submit 'save' %>

Как управлять ими на стороне сервера, поскольку поле inoice_x является переменным числом.

1 Ответ

1 голос
/ 09 октября 2019

Вы можете назвать свои флажки так:

<checkbox name="invoiced[]" value="187">

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

[187, 188]

Или сделайте это

<checkbox name="invoiced[187]" >

Тогда, я полагаю, вы получите хэш

{187 = 1, 188 = 1}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...