@Sworg

Как полностью удалить валидацию email в devise?

Цель - избавиться от дефолтных настроек devise, а именно заменить авторизацию по email на авторазацию по другому параметру(:username в моем случае).
Что я сделал: Вставил в config.authentication_keys нужный мне параметр.
Удалил настройку :validatable из модели пользователя.
Заменил все параметры с email на username в представлениях.

Однако после всех этих действий я получаю такую ошибку при попытке регистрации нового пользователя:
Адрес электронной почты должен содержать символ @.
Это странно, т.к. валидация была отключена.
  • Вопрос задан
  • 2489 просмотров
Решения вопроса 1
viktorvsk
@viktorvsk
Вообще, если Вам не нужен эмейл, то и использование девайса не особо оправдано.
Есть другие, более гибкие гемы для таких случаев
https://github.com/NoamB/sorcery
https://github.com/binarylogic/authlogic

Обычно, если эмейл не нужен, то он генерируется автоматически по типу, например user_login@myapp.com

Тем более, когда-то он все же может понадобиться, так что полностью выпиливать его - немного сомнительно.

Если все же очень хочется, можете взглянуть на сам validatable:
https://github.com/plataformatec/devise/blob/maste...

Видимо, нужно добавить юзеру:
def email_required?
  false
end

def email_changed?
  false
end


А потом, скорее всего, сделать миграцию:
change_column :users, :email, :string, :null => true
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы