【问题标题】:Ruby on Rails 3, Email Validation for Multiple Domains?Ruby on Rails 3,多个域的电子邮件验证?
【发布时间】:2011-07-28 21:58:12
【问题描述】:

大家好,我在这里遇到了问题。有没有办法拥有两种可接受的电子邮件格式?

您看,我正在构建的网站需要让用户注册到某个域,并且学生和教职员工共享不同的域。例如: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},}

如果有任何帮助,我将不胜感激。

【问题讨论】:

    标签: ruby-on-rails ruby ruby-on-rails-3 email-validation


    【解决方案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?
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-09-29
      • 1970-01-01
      • 1970-01-01
      • 2023-03-28
      • 1970-01-01
      • 2011-09-04
      • 2015-06-15
      • 1970-01-01
      相关资源
      最近更新 更多