diff options
Diffstat (limited to 'actionpack/lib')
-rw-r--r-- | actionpack/lib/action_controller/metal/strong_parameters.rb | 32 | ||||
-rw-r--r-- | actionpack/lib/action_dispatch/middleware/exception_wrapper.rb | 3 |
2 files changed, 10 insertions, 25 deletions
diff --git a/actionpack/lib/action_controller/metal/strong_parameters.rb b/actionpack/lib/action_controller/metal/strong_parameters.rb index 8ae7e474a3..fcc76f6225 100644 --- a/actionpack/lib/action_controller/metal/strong_parameters.rb +++ b/actionpack/lib/action_controller/metal/strong_parameters.rb @@ -10,6 +10,8 @@ module ActionController # params = ActionController::Parameters.new(a: {}) # params.fetch(:b) # # => ActionController::ParameterMissing: param not found: b + # params.require(:a) + # # => ActionController::ParameterMissing: param not found: a class ParameterMissing < KeyError attr_reader :param # :nodoc: @@ -19,20 +21,6 @@ module ActionController end end - # Raised when a required parameter value is empty. - # - # params = ActionController::Parameters.new(a: {}) - # params.require(:a) - # # => ActionController::EmptyParameter: value is empty for required key: a - class EmptyParameter < IndexError - attr_reader :param - - def initialize(param) - @param = param - super("value is empty for required key: #{param}") - end - end - # Raised when a supplied parameter is not expected. # # params = ActionController::Parameters.new(a: "123", b: "456") @@ -169,22 +157,20 @@ module ActionController self end - # Ensures that a parameter is present. If it's present and not empty, - # returns the parameter at the given +key+, if it's empty raises - # an <tt>ActionController::EmptyParameter</tt> error, otherwise - # raises an <tt>ActionController::ParameterMissing</tt> error. + # Ensures that a parameter is present. If it's present, returns + # the parameter at the given +key+, otherwise raises an + # <tt>ActionController::ParameterMissing</tt> error. # # ActionController::Parameters.new(person: { name: 'Francesco' }).require(:person) # # => {"name"=>"Francesco"} # - # ActionController::Parameters.new(person: {}).require(:person) - # # => ActionController::EmptyParameter: value is empty for required key: person + # ActionController::Parameters.new(person: nil).require(:person) + # # => ActionController::ParameterMissing: param not found: person # - # ActionController::Parameters.new(name: {}).require(:person) + # ActionController::Parameters.new(person: {}).require(:person) # # => ActionController::ParameterMissing: param not found: person def require(key) - raise(ActionController::ParameterMissing.new(key)) unless self.key?(key) - self[key].presence || raise(ActionController::EmptyParameter.new(key)) + self[key].presence || raise(ParameterMissing.new(key)) end # Alias of #require. diff --git a/actionpack/lib/action_dispatch/middleware/exception_wrapper.rb b/actionpack/lib/action_dispatch/middleware/exception_wrapper.rb index daddaccadd..37bf9c8c9f 100644 --- a/actionpack/lib/action_dispatch/middleware/exception_wrapper.rb +++ b/actionpack/lib/action_dispatch/middleware/exception_wrapper.rb @@ -15,8 +15,7 @@ module ActionDispatch 'ActionController::InvalidAuthenticityToken' => :unprocessable_entity, 'ActionDispatch::ParamsParser::ParseError' => :bad_request, 'ActionController::BadRequest' => :bad_request, - 'ActionController::ParameterMissing' => :bad_request, - 'ActionController::EmptyParameter' => :bad_request + 'ActionController::ParameterMissing' => :bad_request ) cattr_accessor :rescue_templates |