def added?(attribute, type = :invalid, options = {})
      attribute, type, options = normalize_arguments(attribute, type, options)

      if type.is_a? Symbol
        @errors.any? { |error|
          error.strict_match?(attribute, type, options)
        }
      else
        messages_for(attribute).include?(type)
      end
    end
def added?(attribute, type = :invalid, options = {})
      attribute, type, options = normalize_arguments(attribute, type, options)

      if type.is_a? Symbol
        @errors.any? { |error|
          error.strict_match?(attribute, type, options)
        }
      else
        messages_for(attribute).include?(type)
      end
    end
Returns +true+ if an error on the attribute with the given message is
 present, or +false+ otherwise. +message+ is treated the same as for +add+.

   person.errors.add :name, :blank
   person.errors.added? :name, :blank           # => true
   person.errors.added? :name, "can't be blank" # => true

 If the error message requires options, then it returns +true+ with
 the correct options, or +false+ with incorrect or missing options.

   person.errors.add :name, :too_long, { count: 25 }
   person.errors.added? :name, :too_long, count: 25                     # => true
   person.errors.added? :name, "is too long (maximum is 25 characters)" # => true
   person.errors.added? :name, :too_long, count: 24                     # => false
   person.errors.added? :name, :too_long                                # => false
   person.errors.added? :name, "is too long"                            # => false