instance method validates_comparison_of

Ruby on Rails 8.0.4

Since v7.0.10

Available in: v7.0.10 v7.1.6 v7.2.3 v8.0.4 v8.1.2

Signature

validates_comparison_of(*attr_names)

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

Parameters

attr_names rest
Source
# File activemodel/lib/active_model/validations/comparison.rb, line 85
      def validates_comparison_of(*attr_names)
        validates_with ComparisonValidator, _merge_attributes(attr_names)
      end

Defined in activemodel/lib/active_model/validations/comparison.rb line 85 · View on GitHub · Improve this page · Find usages on GitHub

Defined in ActiveModel::Validations::HelperMethods

Type at least 2 characters to search.

↑↓ navigate · open · esc close