2012-07-10 3 views
2

작성 방법에 대한 유효성 검사에서 "Email taken already"오류가 발생합니다.Rails Validates_uniqueness가 작동하지 않습니다.

validates :email, :uniqueness => {:scope => :account_id, :case_sensitive => false} 

을 그리고 이것은 내 로그에보고 있어요 무엇 :

내 고객 모델이 검증이 도움을

Customer Load (0.4ms) SELECT `customers`.* FROM `customers` WHERE `customers`.`account_id` = 2 AND `customers`.`email` = '[email protected]' LIMIT 1 
(0.1ms) BEGIN 
Customer Exists (0.8ms) SELECT 1 AS one FROM `customers` WHERE `customers`.`email` = BINARY '[email protected]' LIMIT 1 
Customer Exists (0.3ms) SELECT 1 AS one FROM `customers` WHERE (`customers`.`email` = '[email protected]' AND `customers`.`account_id` = 2) LIMIT 1 
(0.2ms) ROLLBACK 

감사합니다.

+0

동일한 account_id = 2를 사용하려고 한 것처럼 보입니다. 그렇지 않습니까? – gayavat

답변

0

범위가 전자 메일 검색을 주어진 account_id (= 2)로 좁히고 있습니다. 이것이 의도 한 동작인지 확실하지 않지만 다른 계정 ID도 검색하려는 경우 범위를 제거해야합니다.

입력 한 이메일이 이미 사용되었으므로 유효성 검사에 실패했습니다. 따라서, 그들은 당신이 말한대로 정확히하고 있습니다 ...

관련 문제