проверьте, фильтрует ли значение поля, измененного в before_update,

У меня есть поле базы данных, где я хочу сохранить свой пароль. В before_create просачиваются моя модель, я вызываю функцию шифрования и сохраняю от открытого текста до зашифрованного текста.

Я хочу теперь использовать before_update также для шифрования, но только если значение изменилось. Как я могу записать условие для проверки, если значение поля изменилось?

6
задан Lance Roberts 22 February 2010 в 17:00
поделиться

2 ответа

Поскольку вы обычно не сохраняете пароль в модели, используя поле, которое вы бы открывали в форме, должно быть достаточно только обновить его , если не введен пароль.blank? и укажите настоящий пароль в поле hashed_password, которое не будет отображаться в форме.

Спасибо Бену (см. Ниже) за указание на дополнительную защиту вашего зашифрованного пароля с помощью attr_protected , чтобы он не мог быть доступен / обновлен напрямую из формы. +1

4
ответ дан 8 December 2019 в 03:09
поделиться

Если поле называется name, то

object.name_changed?

вернет истину.

26
ответ дан 8 December 2019 в 03:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: