class Email < String include ActiveModel::Validations validates :email, :format => { :with => /\A([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})\Z/, #local part of email is case-sensitive, so allow uppercase letter. :message => "needs to be a valid email address" } def to_partial_path "emails/email" end def to_param to_s end def email self end def handle self.split('@').first end end