您看,我正在构建的网站需要让用户注册某个域,并且学生和员工共享不同的域。例如:name@mail.domain.ac.uk和name@domain.ac.uk。我想要导师,学生能够注册。到目前为止我试过这个:
EMAIL_STAFF_REGEX = /\A[\w+\-.]+@mail.domain.ac.uk/i
email_regex = /\A[\w+\-.]+@domain.ac.uk/i
validates :email, :presence => true,
:format => { :with => email_regex,
:with => EMAIL_STAFF_REGEX},}
我非常感谢任何帮助。
答案 0 :(得分:1)
我假设你正在拆分正则表达式,因为你希望以后能够使用正则表达式来判断他们是否是导师或学生。
尝试
tutor_subdomain = mail
EMAIL_REGEX = /\A[\w+-.]+@(:?#{tutor_domain}.)?domain.ac.uk/i
TUTOR_REGEX = /\A[\w+-.]+@#{tutor_domain}.domain.ac.uk/i
def tutor?
email =~ TUTOR_REGEX
end
我建议将教师列设为实际字段,以便您可以对其进行查询,然后使用验证来确保电子邮件符合相同的格式。
validates:email, :format => {:with => STUDENT_REGEX}
validates:email, :format => {:with => TUTOR_REGEX}, :if => :tutor?