Спасение от ActionController :: UnpermittedParameters - PullRequest
0 голосов
/ 21 ноября 2018

Я пытаюсь обработать ActionController::UnpermittedParameters.

Я определил блок в ApplicationController

  rescue_from ActionController::UnpermittedParameters do |error|
    message = "Invalid parameter: %s. " % error.params.to_sentence
    message << 'Please verify that the parameter name is valid and the values are the correct type.'
    format.html { redirect_to :back, alert: 'You passed wrong params! ' + message }
  end

Но, когда я выполняю код, который должен быть обработан, спасениеблок не выполняется.

enter image description here

Что я делаю не так?

Ответы [ 2 ]

0 голосов
/ 22 ноября 2018

Я не знаю, что не так в моем вопросе, но я пишу свой собственный модуль ErrorHandler, который теперь отлично работает.

# Error module to Handle errors globally
# include Error::ErrorHandler in application_controller.rb
module Error
  module ErrorHandler
    def self.included(klass)
      klass.class_eval do
        rescue_from ActionController::UnpermittedParameters, with: :unpermitted_parameter
      end
    end

    private
    def unpermitted_parameter(error)
      message = "You have entered an unpermitted parameter: %s. " % error.params.to_sentence
      message << 'Please verify that the parameter name is valid and the values are the correct type.'
      Rails.logger.info(Rainbow(" !!! UNPERMITTED: !!! #{error.to_s}").fg(:red))

      respond_to do |format|
        format.html { redirect_back fallback_location: { action: "index" }, 
                      :alert => message }
        format.js
      end
    end
  end
end
0 голосов
/ 21 ноября 2018

Полагаю, ваш запрос не в формате HTML, поэтому блок format.html { } не будет выполнен.

Попробуйте оставить только redirect_to :back, alert: 'You passed wrong params! ' + message часть

...