If you have your own validates
class Invite
validates :invitee_email, format: {
with: /\A([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})\z/i,
message: "is not an email"
}
end
class Invite
validates :invitee_email, format: {
with: Devise.email_regexp,
allow_blank: false
}
end
You can refactor it
# app/validators/email_validator.rb
class EmailValidator < ActiveModel::EachValidator
def validate_each(record, attribute, value)
unless value =~ /\A([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})\z/i
record.errors[attribute] << (options[:message] || "is not an email")
end
end
end
class Invite
# Rails "magic" infers the name of the validation
validates :invitee_email, email: true
end
class EmailValidator < ActiveModel::EachValidator
def validate_each(record, attribute, value)
unless value =~ Devise.email_regexp
record.errors[attribute] << (options[:message] || "is not an email")
end
end
end
Comments
Post a Comment