class ActiveModel::Error 
        Active Model Error
Represents one single error
Constants
Attributes
| [R] | attribute | 
            The attribute of   | 
          
| [R] | base | 
            The object which the error belongs to  | 
          
| [R] | options | 
            The options provided when calling   | 
          
| [R] | raw_type | 
            The raw value provided as the second parameter when calling   | 
          
| [R] | type | 
            The type of error, defaults to   | 
          
Public class methods
Source code GitHub
# File activemodel/lib/active_model/error.rb, line 102
def initialize(base, attribute, type = :invalid, **options)
  @base = base
  @attribute = attribute
  @raw_type = type
  @type = type || :invalid
  @options = options
end
            Public instance methods
              Alias for:
              details.
            
              Also aliased as:
              
              detail.
            
Returns the error details.
error = ActiveModel::Error.new(person, :name, :too_short, count: 5)
error.details
# => { error: :too_short, count: 5 }
Source code GitHub
# File activemodel/lib/active_model/error.rb, line 148
def details
  { error: raw_type }.merge(options.except(*CALLBACKS_OPTIONS + MESSAGE_OPTIONS))
end
            Returns the full error message.
error = ActiveModel::Error.new(person, :name, :too_short, count: 5)
error.full_message
# => "Name is too short (minimum is 5 characters)"
Source code GitHub
# File activemodel/lib/active_model/error.rb, line 158
def full_message
  self.class.full_message(attribute, message, @base)
end
            See if error matches provided attribute, type, and options.
Omitted params are not checked for a match.
Source code GitHub
# File activemodel/lib/active_model/error.rb, line 165
def match?(attribute, type = nil, **options)
  if @attribute != attribute || (type && @type != type)
    return false
  end
  options.each do |key, value|
    if @options[key] != value
      return false
    end
  end
  true
end
            Returns the error message.
error = ActiveModel::Error.new(person, :name, :too_short, count: 5)
error.message
# => "is too short (minimum is 5 characters)"
Source code GitHub
# File activemodel/lib/active_model/error.rb, line 134
def message
  case raw_type
  when Symbol
    self.class.generate_message(attribute, raw_type, @base, options.except(*CALLBACKS_OPTIONS))
  else
    raw_type
  end
end
            See if error matches provided attribute, type, and options exactly.
All params must be equal to Error’s own attributes to be considered a strict match.
Source code GitHub
# File activemodel/lib/active_model/error.rb, line 183
def strict_match?(attribute, type, **options)
  return false unless match?(attribute, type)
  options == @options.except(*CALLBACKS_OPTIONS + MESSAGE_OPTIONS)
end
            Protected instance methods
Source code GitHub
# File activemodel/lib/active_model/error.rb, line 203
def attributes_for_hash
  [@base, @attribute, @raw_type, @options.except(*CALLBACKS_OPTIONS)]
end