2012-07-10 184 views
2

我的驗證範圍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 2012-07-10 08:11:33

回答

0

您的範圍正在縮小電子郵件搜索到給定的account_id(= 2)。不知道這是你預期的行爲,但如果你想它來搜索其他帳戶ID以及您應該刪除的範圍。

驗證失敗,因爲您輸入的電子郵件已被使用。因此,他們在做什麼你告訴他們這樣做......