2015-05-20 1 views
2

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

следующая валидация была добавлена.

validates :email, :uniqueness => { :message => 'Sorry, this Email address has already been used for an account.' } 

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

В чем причина?

+0

один способ заключается в том, что вы можете отключить кнопку мыши, а затем повторно включить эту кнопку после успешного возвращения из сервера. –

+0

Помог ли мой ответ вам понять вашу проблему? –

+0

Да @Marek, у меня есть большое количество записей в таблице пользователей. Каковы будут наилучшие решения для исправления. Могу ли я добавить индекс для уникальности в электронной почте. Я до сих пор не знаю, сколько записей присутствует с дублирующимися письмами. – Debadatt

ответ

4

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

Для справки: https://robots.thoughtbot.com/the-perils-of-uniqueness-validations

Смежные вопросы