Как я могу проверить, есть ли у пользователя пароль? Ruby On Rails / Devise

#ruby #devise

#ruby #разработка

Вопрос:

Мне нужно проверить, установлен ли у пользователя пароль или нет. Если нет, я активирую кнопку для повторной отправки приглашения set_password, иначе кнопка будет отключена.

Комментарии:

1. Я не работал с Devise, но, возможно, вы используете .valid_password? (nil) метод, передающий значение nil

2. не работает: (

Ответ №1:

Устройство хранит хэши паролей в столбце базы данных с именем encrypted_password (см. Документы).

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

 user.encrypted_password.present?
 

Кстати, я удивлен, что пользователи в вашем приложении могут даже зарегистрироваться без пароля. Возможно, имеет смысл ввести пароль при регистрации?

Комментарии:

1. Для пользователя с паролем и пользователя без пароля user.encrypted_password.present? верно. Поток этого API: суперпользователь вошел в систему, суперпользователь увидит, нужно ли ему повторно отправить электронное письмо. Он может повторно отправить электронное письмо, только если у new_user еще не установлен пароль. (новые пользователи сохраняются, но без пароля они получат электронное письмо для установки пароля). Может быть, Devise устанавливает пароль при сохранении пользователя???