1
我看到有config.action_controller.action_on_unpermitted_parameters = :raise
动作控制器,但我不想运行异常。日志,因为我想要轨道4不允许的参数请求?
我需要运行我自己的方法。这是可能的?怎么样?
例如,如果我想在特殊SQL表中登录unpermitted_parameters。
我看到有config.action_controller.action_on_unpermitted_parameters = :raise
动作控制器,但我不想运行异常。日志,因为我想要轨道4不允许的参数请求?
我需要运行我自己的方法。这是可能的?怎么样?
例如,如果我想在特殊SQL表中登录unpermitted_parameters。
根据http://edgeapi.rubyonrails.org/classes/ActionController/Parameters.html
值可以是:日志上写上记录的消息或:提高募集的ActionController :: UnpermittedParameters例外。缺省值是:登录测试和开发环境,否则为false。
因此,它看起来就像你不能没有覆盖方法ActionController::Parameters#unpermitted_parameters!
原来这里是实现:
module ActionController
class Parameters < ActiveSupport::HashWithIndifferentAccess
def unpermitted_parameters!(params)
unpermitted_keys = unpermitted_keys(params)
if unpermitted_keys.any?
case self.class.action_on_unpermitted_parameters
when :log
name = "unpermitted_parameters.action_controller"
ActiveSupport::Notifications.instrument(name, keys: unpermitted_keys)
when :raise
raise ActionController::UnpermittedParameters.new(unpermitted_keys)
end
end
end
end
end
您可以添加另一种情况分支并实现你在那里的逻辑。