Возникли проблемы при получении form_with для передачи: id в соответствии с требованиями пути - PullRequest
0 голосов
/ 25 июня 2019

Я использую form_with в форме рельсов. Вызов form_with использует оба параметра: url: и model: params, используя url для переопределения контроллера, который будет по умолчанию для модели. То, что передается в форме, не включает идентификатор целевого объекта, как я ожидаю из приведенного ниже кода.

<%= form_with(url: admin_ride_path(@ride), model: @ride, local: true) do |form| %>

form_with(url: admin_ride_path(@ride), model: @ride, local: true) do |form|

Форма отправлена ​​на обновление существующей записи. Я ожидаю, что путь для подачи будет

PATCH /admin_ride/7   (where 7 is the id of the ride)

но вместо этого отправляет на

PATCH /admin_ride

Для которого нет маршрута.

1 Ответ

0 голосов
/ 25 июня 2019

Убедитесь, что ваша переменная @ride имеет атрибут id, который не nil

form_with , работает двумя способами.

1.Если идентификатор модели не установлен

Например, ваша модель называется User, и в вашем представлении есть переменная @user, которая не сохраняется в базе данных (@ user.id - nil).

В этом случае форма будет отправлена ​​в / users / методом POST.

2.Когда для модели задан идентификатор

Когда установлена ​​@user.id (запись существует в базе данных) и id, например, 1

В этом случае form_with будет автоматическиотправлено в route / users / 1 с PATCH запросом

Надеюсь, это поможет.

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