Отправлено неверное значение скрытого поля - PullRequest
0 голосов
/ 29 апреля 2018

У меня есть форма флажков со скрытым полем, прикрепленным к каждому флажку.

И всякий раз, когда пользователь отправляет форму, всегда отправляется значение для последнего поля hidden__. почему?

  <%= search_form_for @q, id: "filters_click", remote: true do |f| %>
    <div id="dates">
      <% i = 1 %>
      <% @weeks.each do |date| %>
        <div class="ck-button ">
          <label class="d-flex h-100 justify-content-center">
              <%= hidden_field_tag :start_dt_lteq, (date.to_date + 7.days), input_html: { name: 'week-#{i}' } %>
            <%= radio_button_tag :start_dt_gteq, date, nil, class: "date" %>
            <span class="align-self-center">
                  Week <br />
              <%= i %>
              <% i += 1 %>
            </span>
          </label>
        </div>
      <% end %>
    </div>
  <% end %>

ОБНОВЛЕНИЕ: в ответ на комментарии я получаю следующие результаты после установки флажка:

Предлагаемое редактирование:

<%= hidden_field_tag 'start_dt_lteq[]', (date.to_date + 7.days), input_html: { name: 'week-#{i}' } %>

Результат:

  Parameters: {"utf8"=>"✓", "start_dt_lteq"=>["2018-04-02", "2018-04-09", "2018-04-16", "2018-04-23", "2018-04-30", "2018-05-07", "2018-05-14", "2018-05-21", "2018-05-28", "2018-06-04", "2018-06-11", "2018-06-18"], "q"=>{"start_dt_gteq"=>["2018-04-23"]}}

Что это ДОЛЖНО БЫТЬ:

  Parameters: {"utf8"=>"✓", "start_dt_lteq"=>["2018-04-30"], "q"=>{"start_dt_gteq"=>["2018-04-23"]}}

1 Ответ

0 голосов
/ 29 апреля 2018

Попробуйте следующее, используя строку массива start_dt_lteq[]

<%= hidden_field_tag 'start_dt_lteq[]', (date.to_date + 7.days), input_html: { name: 'week-#{i}' } %>

будет принимать все отмеченные значения. Если вы используете это :start_dt_lteq, оно будет принимать только последнее значение.

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