разработать сообщение об ошибке для дублированного имени пользователя - PullRequest
0 голосов
/ 11 сентября 2018

Я использую рельсы 5.2 с устройством.Я добавил уникальное имя пользователя в свою базу данных для разработчиков.Я получаю сообщение об ошибке ActiveRecord :: RecordNotUnique для своей базы данных при попытке зарегистрироваться с повторяющимся именем пользователя.Я хочу получить сообщение об ошибке, так же как у devise по умолчанию для электронной почты.Спасибо!

редактировать полное сообщение об ошибке:

PG :: UniqueViolation: ОШИБКА: двойное значение ключа нарушает ограничение уникальности "index_users_on_username" ДЕТАЛИ: Ключ (имя пользователя) = (супертест) уже существует,: INSERT INTO "users" ("email", "encrypted_password", "made_at", "updated_at", "username") ЗНАЧЕНИЯ ($ 1, $ 2, $ 3, $ 4, $ 5) ВОЗВРАЩЕНИЕ "id"

1 Ответ

0 голосов
/ 11 сентября 2018

Вам необходимо добавить проверку к вашей модели:

class User < ActiveRecord::Base
  devise :database_authenticatable, :registerable,
         :confirmable, :recoverable, :validatable # ...
  validates_uniqueness_of :username
end

Проверка предотвращает исключение низкого уровня ActiveRecord::RecordNotUnique, так как Rails не будет пытаться записать в БД, еслипроверка не пройдена.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...