2016-10-19 4 views
1

От расчесывания документации, единственное место, где я могу видеть, чтобы настроить параметры Сильные поднять или войти настройка с помощью:Rails Сильные параметры повышают исключение или регистрируются на настройку контроллера?

config.action_controller.action_on_unpermitted_parameters = :raise 

Я хотел установить это :raise для моих публичных контроллеров API, так что я могу использовать :

rescue_from ActionController::UnpermittedParameters do |e| 
    render json: {error: e.message, params: e.params}, status: :unprocessable_entity 
    end 

Чтобы пользователи API могли понять, что не так с их запросом и исправить соответственно.

Но для других контроллеров я бы предпочел, чтобы не разрешенные параметры регистрировались (и терпели неудачу), чтобы не прерывать вещи без необходимости для любых вредоносных полей формы вставки в DOM. Это можно сделать? Если я добавлю спасение в эти контроллеры, обновление будет прервано.

ответ

0

Да, вы можете сделать это с чем-то вроде следующего:

white_list = [:name, :job, :id] 

params.reject! {|k,_| !white_list.include?(k)} 
+0

Но это прервет обновление. Я хочу иметь возможность продолжить обновление записи, игнорируя не разрешенные параметры, а не поднимая исключение. – JBlake

+0

О, я обновляю –

 Смежные вопросы

  • Нет связанных вопросов^_^