У меня есть поле базы данных, где я хочу сохранить свой пароль. В before_create просачиваются моя модель, я вызываю функцию шифрования и сохраняю от открытого текста до зашифрованного текста.
Я хочу теперь использовать before_update также для шифрования, но только если значение изменилось. Как я могу записать условие для проверки, если значение поля изменилось?
Поскольку вы обычно не сохраняете пароль в модели, используя поле, которое вы бы открывали в форме, должно быть достаточно только обновить его , если не введен пароль.blank?
и укажите настоящий пароль в поле hashed_password, которое не будет отображаться в форме.
Спасибо Бену (см. Ниже) за указание на дополнительную защиту вашего зашифрованного пароля с помощью attr_protected
, чтобы он не мог быть доступен / обновлен напрямую из формы. +1
Если поле называется name, то
object.name_changed?
вернет истину.