diff options
Diffstat (limited to 'activemodel')
3 files changed, 11 insertions, 3 deletions
diff --git a/activemodel/lib/active_model/validations/numericality.rb b/activemodel/lib/active_model/validations/numericality.rb index adf34bf454..c6d84c5312 100644 --- a/activemodel/lib/active_model/validations/numericality.rb +++ b/activemodel/lib/active_model/validations/numericality.rb @@ -10,8 +10,8 @@ module ActiveModel end def check_validity! - keys = CHECKS.keys - [:odd, :event] - options.slice(*keys) do |option, value| + keys = CHECKS.keys - [:odd, :even] + options.slice(*keys).each do |option, value| next if value.is_a?(Numeric) || value.is_a?(Proc) || value.is_a?(Symbol) raise ArgumentError, ":#{option} must be a number, a symbol or a proc" end diff --git a/activemodel/lib/active_model/validations/validates.rb b/activemodel/lib/active_model/validations/validates.rb index 80924f50d6..4c82a993ae 100644 --- a/activemodel/lib/active_model/validations/validates.rb +++ b/activemodel/lib/active_model/validations/validates.rb @@ -54,7 +54,7 @@ module ActiveModel # The validators hash can also handle regular expressions, ranges and arrays: # # validates :email, :format => /@/ - # validates :gender, :inclusion => %w(mail female) + # validates :gender, :inclusion => %w(male female) # validates :password, :length => 6..20 # # Finally, the options :if, :unless, :on, :allow_blank and :allow_nil can be given diff --git a/activemodel/test/cases/validations/numericality_validation_test.rb b/activemodel/test/cases/validations/numericality_validation_test.rb index 75cd654f98..38b3f87e93 100644 --- a/activemodel/test/cases/validations/numericality_validation_test.rb +++ b/activemodel/test/cases/validations/numericality_validation_test.rb @@ -154,6 +154,14 @@ class NumericalityValidationTest < ActiveModel::TestCase Person.reset_callbacks(:validate) end + def test_validates_numericality_with_invalid_args + assert_raise(ArgumentError){ Topic.validates_numericality_of :approved, :greater_than_or_equal_to => "foo" } + assert_raise(ArgumentError){ Topic.validates_numericality_of :approved, :less_than_or_equal_to => "foo" } + assert_raise(ArgumentError){ Topic.validates_numericality_of :approved, :greater_than => "foo" } + assert_raise(ArgumentError){ Topic.validates_numericality_of :approved, :less_than => "foo" } + assert_raise(ArgumentError){ Topic.validates_numericality_of :approved, :equal_to => "foo" } + end + private def invalid!(values, error = nil) |