Method: ActiveModel::Validations::HelperMethods#validates_comparison_of
- Defined in:
- activemodel/lib/active_model/validations/comparison.rb
#validates_comparison_of(*attr_names) ⇒ Object
Validates the value of a specified attribute fulfills all defined comparisons with another value, proc, or attribute.
class Person < ActiveRecord::Base
validates_comparison_of :value, greater_than: 'the sum of its parts'
end
Configuration options:
-
:message- A custom error message (default is: “failed comparison”). -
:greater_than- Specifies the value must be greater than the supplied value. The default error message for this option is _“must be greater than %count”_. -
:greater_than_or_equal_to- Specifies the value must be greater than or equal to the supplied value. The default error message for this option is _“must be greater than or equal to %count”_. -
:equal_to- Specifies the value must be equal to the supplied value. The default error message for this option is _“must be equal to %count”_. -
:less_than- Specifies the value must be less than the supplied value. The default error message for this option is _“must be less than %count”_. -
:less_than_or_equal_to- Specifies the value must be less than or equal to the supplied value. The default error message for this option is _“must be less than or equal to %count”_. -
:other_than- Specifies the value must not be equal to the supplied value. The default error message for this option is _“must be other than %count”_.
There is also a list of default options supported by every validator: :if, :unless, :on, :allow_nil, :allow_blank, and :strict . See ActiveModel::Validations::ClassMethods#validates for more information.
The validator requires at least one of the following checks to be supplied. Each will accept a proc, value, or a symbol which corresponds to a method:
-
:greater_than -
:greater_than_or_equal_to -
:equal_to -
:less_than -
:less_than_or_equal_to -
:other_than
For example:
class Person < ActiveRecord::Base
validates_comparison_of :birth_date, less_than_or_equal_to: -> { Date.today }
validates_comparison_of :preferred_name, other_than: :given_name, allow_nil: true
end
85 86 87 |
# File 'activemodel/lib/active_model/validations/comparison.rb', line 85 def validates_comparison_of(*attr_names) validates_with ComparisonValidator, _merge_attributes(attr_names) end |