mirror of https://github.com/rails/rails
added :other_than => :!= option to numericality validator
This commit is contained in:
parent
afea8c7948
commit
0fe311a7fc
|
@ -23,5 +23,6 @@ en:
|
|||
equal_to: "must be equal to %{count}"
|
||||
less_than: "must be less than %{count}"
|
||||
less_than_or_equal_to: "must be less than or equal to %{count}"
|
||||
other_than: "must be other than %{count}"
|
||||
odd: "must be odd"
|
||||
even: "must be even"
|
||||
|
|
|
@ -5,7 +5,7 @@ module ActiveModel
|
|||
class NumericalityValidator < EachValidator
|
||||
CHECKS = { :greater_than => :>, :greater_than_or_equal_to => :>=,
|
||||
:equal_to => :==, :less_than => :<, :less_than_or_equal_to => :<=,
|
||||
:odd => :odd?, :even => :even? }.freeze
|
||||
:odd => :odd?, :even => :even?, :other_than => :!= }.freeze
|
||||
|
||||
RESERVED_OPTIONS = CHECKS.keys + [:only_integer]
|
||||
|
||||
|
@ -99,6 +99,7 @@ module ActiveModel
|
|||
# * <tt>:equal_to</tt> - Specifies the value must be equal to the supplied value.
|
||||
# * <tt>:less_than</tt> - Specifies the value must be less than the supplied value.
|
||||
# * <tt>:less_than_or_equal_to</tt> - Specifies the value must be less than or equal the supplied value.
|
||||
# * <tt>:other_than</tt> - Specifies the value must be other than the supplied value.
|
||||
# * <tt>:odd</tt> - Specifies the value must be an odd number.
|
||||
# * <tt>:even</tt> - Specifies the value must be an even number.
|
||||
# * <tt>:if</tt> - Specifies a method, proc or string to call to determine if the validation should
|
||||
|
@ -107,7 +108,7 @@ module ActiveModel
|
|||
# * <tt>:unless</tt> - Specifies a method, proc or string to call to determine if the validation should
|
||||
# not occur (e.g. <tt>:unless => :skip_validation</tt>, or <tt>:unless => Proc.new { |user| user.signup_step <= 2 }</tt>). The
|
||||
# method, proc or string should return or evaluate to a true or false value.
|
||||
# * <tt>:strict</tt> - Specifies whether validation should be strict.
|
||||
# * <tt>:strict</tt> - Specifies whether validation should be strict.
|
||||
# See <tt>ActiveModel::Validation#validates!</tt> for more information
|
||||
#
|
||||
# The following checks can also be supplied with a proc or a symbol which corresponds to a method:
|
||||
|
|
|
@ -106,6 +106,13 @@ class NumericalityValidationTest < ActiveModel::TestCase
|
|||
valid!([2])
|
||||
end
|
||||
|
||||
def test_validates_numericality_with_other_than
|
||||
Topic.validates_numericality_of :approved, :other_than => 0
|
||||
|
||||
invalid!([0, 0.0])
|
||||
valid!([-1, 42])
|
||||
end
|
||||
|
||||
def test_validates_numericality_with_proc
|
||||
Topic.send(:define_method, :min_approved, lambda { 5 })
|
||||
Topic.validates_numericality_of :approved, :greater_than_or_equal_to => Proc.new {|topic| topic.min_approved }
|
||||
|
|
Loading…
Reference in New Issue