Finding Rails ActiveModel Errors
Rails allows to filter ActiveModel erros by field name and type with the where method. Check this out:
user = User.new(email: "user@test.com")
user.valid?
user.errors.where(:email).map(&:full_message)
# => [
# "Email has already been taken",
# "Email is too short (minimum is 20 characters)"
# ]
user.errors.where(:email, :taken).map(&:full_message)
# => ["Email has already been taken"]
Tweet