class ActiveModel::Errors

def where(attribute, type = nil, **options)

person.errors.where(:name, :too_short, minimum: 2) # => all name errors being too short and minimum is 2
person.errors.where(:name, :too_short) # => all name errors being too short
person.errors.where(:name) # => all name errors.

Only supplied params will be matched.

Search for errors matching +attribute+, +type+, or +options+.
def where(attribute, type = nil, **options)
  attribute, type, options = normalize_arguments(attribute, type, **options)
  @errors.select { |error|
    error.match?(attribute, type, **options)
  }
end