2014-06-20 32 views
1

我對用戶名和電子郵件有以下驗證規則。Rails驗證用戶名和電子郵件

validates :username, 
    presence: {:message => "Please choose a username.", on: :update}, 
    uniqueness: {:message => "Username already exisits. Please select a different one."}, 
    length: {in: 3..15, :message => "Username should be 3-5 characters long", :allow_blank => true} 

    validates :email, 
     presence: {:message => "Please enter your Email Address."}, 
     uniqueness: {:message => "Email Address already exisits. Please Login!"} 

    validate :email_regex 
     def email_regex 
      if email.present? and not email.match(/\A[^@\s][email protected]([^@.\s]+\.)+[^@.\s]+\z/) 
       errors.add :email, "Please enter a valid Email Address." 
     end 
    end 

對於用戶名:我不想讓任何東西 - 小字母,點,數字。

我是否需要寫一個完全不同的驗證消息像email_regex還是有一個到簡體版,我可以使用附加我exisiting規則用逗號「」

回答

3

您可以使用類似:

validates :username, format: { with: /\A([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})\z/i} 

將逗號分隔選項格式添加到您現有的用戶名驗證中。還有一件事我錯過了,這是虛擬的正則表達式,你需要根據你的目的申請。