Sha256: ba65ea0542ec88e8b9f4d03c26f9f6a87cf9cd63d7d6dffedb0db9f192c3e5ae

Contents?: true

Size: 951 Bytes

Versions: 17

Compression:

Stored size: 951 Bytes

Contents

# Allows to check if the value of a specific attribute is not equal to
# the value of another attribute of an object.
#
# @example Validate that flight origin is not the same as its destination.
#   class Flight << ActiveRecord::Base
#     attr_accessor :origin, :destination
#     validates :origin, inequality: { to: :destination }
#   end
class InequalityValidator < ActiveModel::EachValidator
  # Checks if an attribute value is unequal to another attrubute value.
  #
  # @param [Object] record object to validate
  # @param [String] attribute name of the object attribute to validate
  # @param [Object] value attribute value
  def validate_each(record, attribute, value)
    unequal_to_attr = options[:to]

    if unequal_to_attr.present? && value == record.send(unequal_to_attr.to_sym)
      message = options[:message] || I18n.t('errors.messages.inequality', attr: unequal_to_attr)
      record.errors[attribute] << message
    end
  end
end

Version data entries

17 entries across 17 versions & 1 rubygems

Version Path
missing_validators-1.0.1 lib/missing_validators/validators/inequality_validator.rb
missing_validators-0.9.1 lib/missing_validators/validators/inequality_validator.rb
missing_validators-0.9 lib/missing_validators/validators/inequality_validator.rb
missing_validators-0.8.3 lib/missing_validators/validators/inequality_validator.rb
missing_validators-0.8.2 lib/missing_validators/validators/inequality_validator.rb
missing_validators-0.8.1 lib/missing_validators/validators/inequality_validator.rb
missing_validators-0.8.0 lib/missing_validators/validators/inequality_validator.rb
missing_validators-0.7.2 lib/missing_validators/validators/inequality_validator.rb
missing_validators-0.7.1 lib/missing_validators/validators/inequality_validator.rb
missing_validators-0.7.0 lib/missing_validators/validators/inequality_validator.rb
missing_validators-0.6.3 lib/missing_validators/validators/inequality_validator.rb
missing_validators-0.6.0 lib/missing_validators/validators/inequality_validator.rb
missing_validators-0.5.2 lib/missing_validators/validators/inequality_validator.rb
missing_validators-0.5.1 lib/missing_validators/validators/inequality_validator.rb
missing_validators-0.4.2 lib/missing_validators/validators/inequality_validator.rb
missing_validators-0.4.1 lib/missing_validators/validators/inequality_validator.rb
missing_validators-0.4.0 lib/missing_validators/validators/inequality_validator.rb