Rails Validates_uniqueness области не работает

Мои проверки приводят к ошибке "Email Уже принято" в методе создания.

У меня есть эта проверка в моей модели клиента:

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

Спасибо за помощь.

1 ответ

Ваша область сужает поиск электронной почты до заданного идентификатора account_id (= 2). Не уверен, является ли это вашим предполагаемым поведением, но вы должны удалить область, если хотите, чтобы она также осуществляла поиск по другим идентификаторам учетных записей.

Проверки не пройдены, поскольку введенный вами адрес электронной почты уже занят. Таким образом, они делают именно то, что вы им сказали делать...

Другие вопросы по тегам