Как сохранить все поля записи Rails, даже если они не изменены - PullRequest
1 голос
/ 27 апреля 2020

Я использую API атрибутов Rails для шифрования и дешифрования определенных полей, когда запись сохраняется / загружается в / из базы данных. Теперь мне нужно было изменить способ выполнения шифрования и заново сохранить все записи, чтобы зашифрованное значение в базе данных обновлялось.

Но это кажется действительно трудным после того, как конфигурация частичные_обновления были удалены в Rails 4. Есть ли способ заставить Rails сохранять поля, даже если они не изменились?

Или мне нужно написать метод, который выполняет прямое SQL обновление?

1 Ответ

2 голосов
/ 27 апреля 2020

Вам нужно пометить их как грязные. Например, модель Post имеет атрибут title:

post = Post.find(12)
post.title_will_change!
post.save

См. здесь для получения дополнительной информации о грязных атрибутах .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...