Я хотел бы реализовать модель Rails User
, в которой столбец БД называется password
. Я хочу сделать так, чтобы, когда я звоню ...
user_instance.password = 'cleartext'
метод хеширует открытый текст перед установкой его на экземпляр следующим образом:
Digest::SHA1.hexdigest(cleartext)
Я пытался использовать обратный вызов, но проблема в том, что он хэширует pw при каждом сохранении пользователя, даже если pw не обновляется. Таким образом, он хешируется и перефразируется снова и снова.
Я попытался переопределить метод password=
...
alias password= old_password=
def password=(cleartext)
old_password=(Digest::SHA1.hexdigest(cleartext))
end
но получил сообщение об ошибке password=
не существует.