#ruby-on-rails #ruby-on-rails-6 #form-with
#ruby-on-rails #ruby-on-rails-6 #form-with
Вопрос:
Когда a form_with
отправляет, он отправляет все требуемые параметры, а также параметр с именем «booking», и я совершенно не представляю, откуда взялся этот параметр. Он не содержится ни в представлении, ни в контроллере. Кажется form_with
, он генерирует его откуда-то, но я понятия не имею, как / почему?
Я мог бы разрешить его в качестве permit
параметра ted, чтобы предотвратить Unpermitted parameter: :booking
ошибку, и просто игнорировать его, но я бы предпочел знать, что происходит, и удалить посторонний параметр.
Почему form_with
генерируется нежелательный параметр и как я могу остановить его от этого?
<%= form_with(url: '/booking-confirm', method: :post, local: false) do |f| %>
<br>Select a time:<br><br>
<% days.each do |day, availabilities| %>
<% availabilities.each do |avail| %>
<%= f.label avail.time_slot %>
<%= radio_button_tag(:time_slot, avail.time_slot) %><br>
<% end %>
<hr>
<% end %>
<%= f.submit "Confirm!", class: "btn btn-primary" %>
<% end %>
Обратите внимание, что нигде в коде нет ссылки на какой-либо booking
параметр (ближе всего url: '/booking-confirm'
)
Комментарии:
1. Направляется ли этот запрос в
bookings_controller
? Если это так, это может быть связано с ParamsWrapper . Проверьте это сообщение в блоге2. @AbM хорошие предложения, у меня нет модели / контроллера с именем booking / s, а в контроллере, которому отправляется форма, нет действия с именем booking / s
3. Не могли бы вы опубликовать пример того, как параметры выглядят на контроллере? Кроме того, каково имя контроллера, который обрабатывает эту отправку? Просто чтобы убедиться, что то, чем вы поделились выше, — это целая форма, правильно?