Ruby on Rails ActiveRecord Validations Validating numericality of an attribute


Example

This validation restricts the insertion of only numeric values.

class Player < ApplicationRecord
  validates :points, numericality: true
  validates :games_played, numericality: { only_integer: true }
end

Besides :only_integer, this helper also accepts the following options to add constraints to acceptable values:

  • :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 be other than the supplied value. The default error message for this option is "must be other than %{count}".
  • :odd - Specifies the value must be an odd number if set to true. The default error message for this option is "must be odd".
  • :even - Specifies the value must be an even number if set to true. The default error message for this option is "must be even".

By default, numericality doesn't allow nil values. You can use allow_nil: true option to permit it.