#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 устанавливает пароль при сохранении пользователя???