2

我的验证在 create 方法上引发了“已发送电子邮件”错误。

我在我的客户模型中有这个验证:

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` = 'xxxxx@gmail.com' LIMIT 1
(0.1ms)  BEGIN
Customer Exists (0.8ms)  SELECT 1 AS one FROM `customers` WHERE `customers`.`email` = BINARY 'xxxxx@gmail.com' LIMIT 1
Customer Exists (0.3ms)  SELECT 1 AS one FROM `customers` WHERE (`customers`.`email` = 'xxxxx@gmail.com' AND `customers`.`account_id` = 2) LIMIT 1
(0.2ms)  ROLLBACK

谢谢您的帮助。

4

1 回答 1

0

您的范围正在将电子邮件搜索范围缩小到给定的 account_id (= 2)。不确定这是否是您的预期行为,但如果您希望它也搜索其他帐户 ID,则应该删除范围。

验证失败,因为您输入的电子邮件已被占用。因此,他们正在做你告诉他们做的事情......

于 2012-07-11T06:24:14.030 回答