2014-06-20 6 views
1

사용자 이름 및 이메일에 대한 다음 유효성 검사 규칙이 있습니다.레일즈 사용자 이름 및 이메일 유효성 확인

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처럼 완전히 다른 유효성 검사 메시지를 작성해야하거나 내가 쉼표로 내 소재 기존 규칙을 추가 사용할 수있는 간체 버전이 수행

당신은 같은 것을 사용할 수 있습니다

답변

3

:

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

사용자 이름에 대한 기존 유효성 검증에 쉼표로 분리 된 옵션 형식을 추가하십시오. 한 가지 더 놓친 점은 더미 정규식이므로 용도에 따라 적용해야합니다.

관련 문제