Rails 5 способ обработки ActionController :: ParameterMissing - PullRequest
0 голосов
/ 27 сентября 2018

Если требуемый параметр отсутствует при использовании строгих параметров, сервер Rails ответит HTTP 500.

Это не дает мне контроля над предоставлением пользователю обратной связи о том, что именно пошло не так.Разве не имеет смысла отправлять им обратно сообщения, в которых отсутствует такой обязательный параметр?

Каков "путь Rails" для предоставления соответствующих отзывов пользователей о ActionController::ParameterMissing?Один должен захватить исключение и обработать ваш ответ на запрос там?Кажется неправильным делать это на каждом контроллере.

1 Ответ

0 голосов
/ 27 сентября 2018

Вы можете использовать

rescue_from ActionController::ParameterMissing do |e|
  render 'something'
end

в вашем ApplicationController (или каков ваш родительский контроллер).

Относительно того, должны ли вы информировать пользователей или нет, я думаю, это зависит отчто делают ваши контроллеры.Если они являются контроллерами API, определенно имеет смысл с этим справиться, так как пользователи несут ответственность за подготовку ввода.Если они принимают данные из ваших HTML-форм, это, на мой взгляд, не так важно, так как отсутствующие параметры, вероятно, означают, что пользователь возился с HTML или что-то пошло не так внутри браузера.

...