2014-06-09 4 views
0

전자 메일 주소를 확인하는 데이 코드 블록을 사용하고 있습니다. 입력 한 전자 메일 주소 형식이 유효한지 확인할 수 있지만 "고유성"부분에 문제가 있습니다. 현재 데이터베이스에 더 많은 동일 전자 메일 주소를 입력 할 수 있습니다. 어떻게 가능합니까?레일 4 - 고유성 검증이 작동하지 않습니까?

유효성 검사에 대해 Rails 4에서 변경된 사항이 있습니까?

class BetaAccess < ActiveRecord::Base 
    validates_format_of :email,:with => Devise::email_regexp, uniqueness: true 
end 

감사합니다.

+0

나는 같은 문제가 있었지만, 고유 한 부분을 별도의 줄로 편집했습니다. 그것도'validates_uniqueness_of : email' 시도해보십시오 –

+0

http://stackoverflow.com/questions/6422211/rails-3-validating-email-uniqueness-and-case-sensitive-fails –

답변

4

이 시도 : 당신이 한 줄에 사용하려는 경우

class BetaAccess < ActiveRecord::Base 
    validates :email,format: {with: Devise::email_regexp}, uniqueness: true 
end 
+0

주목해야 할 점은 ['' validates'] (http://guides.rubyonrails.org/active_record_validations.html#validations-overview) 메소드가 Rails 4에 도입되었습니다 (제 생각에는?). 더 이상 'validates_x_y'를 사용하지 마십시오.) –

+0

valides는 Rails 3에 추가되었습니다. – cristian

1

formatuniqueness가 다른 유효성 검사기, 당신은 validates 방법을 사용해야합니다.

validates :email, :format => { :with => Devise::email_regexp }, :uniqueness => true 
0
validates_format_of :email,:with => Devise::email_regexp, uniqueness: true 

은 형식에 대한 검증에 고유성을 결합합니다. validates 구문을 사용하십시오.

validates :email,format: {with: Devise::email_regexp}, 
       uniqueness: true 

또한 해시를 위해 새로운 루비 구문을 사용하십시오. 그런 식의 종류

관련 문제