2011-04-04 49 views
2

嘿傢伙,我在這裏遇到問題。有兩種可接受的電子郵件格式嗎?Ruby on Rails 3,多域名的電子郵件驗證?

您知道,我正在構建的網站需要讓用戶註冊某個域,並且學生和工作人員共享不同的域。例如:[email protected][email protected]。我希望導師和學生能夠註冊。我已經嘗試過目前爲止:

EMAIL_STAFF_REGEX = /\A[\w+\-.][email protected]/i 
email_regex = /\A[\w+\-.][email protected]/i 

validates :email, :presence => true, 
        :format  => { :with => email_regex, 
            :with => EMAIL_STAFF_REGEX},} 

我將不勝感激任何幫助。

回答

1

我假設你正在分解正則表達式的出來,因爲你想能夠稍後使用正則表達式來告訴他們是否是導師或學生。

嘗試

tutor_subdomain = mail 
EMAIL_REGEX = /\A[\w+-.][email protected](:?#{tutor_domain}.)?domain.ac.uk/i 
TUTOR_REGEX = /\A[\w+-.][email protected]#{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?