Сильные параметры Rails вызывают исключение или регистрируют настройки контроллера?
После прочтения документации единственное место, которое я могу увидеть для настройки поднятия Strong Parameters или настройки журнала, - это:
config.action_controller.action_on_unpermitted_parameters = :raise
Я хочу установить это :raise
для моих контроллеров Public API, чтобы я мог использовать:
rescue_from ActionController::UnpermittedParameters do |e|
render json: {error: e.message, params: e.params}, status: :unprocessable_entity
end
Чтобы потребители API могли понять, что не так с их запросом, и исправить это соответствующим образом.
Но для других контроллеров, я бы предпочел, чтобы недопустимые параметры регистрировались (и не работали молча), чтобы не ломать вещи без необходимости для любых злонамеренных вставок полей формы в DOM. Можно ли это сделать? Если я добавлю спасение в эти контроллеры, то обновление будет прервано.
1 ответ
Да, вы можете сделать это с помощью следующего:
white_list = [:name, :job, :id]
params.reject! {|k,_| !white_list.include?(k)}