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
您可以添加另一種情況分支並實現你在那裏的邏輯。