ActiveRecord / Devise не предоставляет сообщение об ошибке «уже было принято» - PullRequest
0 голосов
/ 11 января 2019

У меня есть модель с некоторыми настроенными клавишами разработки, например:

:authentication_keys => [:username],
:reset_password_keys => [:username],
:strip_whitespace_keys => [:username]

Я также переопределил следующий метод, чтобы Devise не ожидал уникальный адрес электронной почты:

def will_save_change_to_email?
  false
end

Проблема в том, что я не получаю сообщение об ошибке ActiveRecord 'has already been taken', пока все другие ожидания не будут выполнены, и в этот момент я получаю ActiveRecord::RecordNotUnique, как и ожидалось.

Кто-нибудь может помочь, пожалуйста?

Спасибо.

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

1 Ответ

0 голосов
/ 11 января 2019

Итак, я понял, что при редактировании ключа аутентификации для Devise, do необходимо указать это в модели.

Видя, что поле уже существует в моей модели, я пролистал нижнюю строку из Руководство по разработке и пропустил :uniq в самом конце.

rails generate migration add_username_to_users username:string:uniq
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...