Rails 2.3.8 делает грязную активную запись - PullRequest
2 голосов
/ 15 января 2011

У меня есть объект ActiveRecord.Он обновляется с использованием вложенных атрибутов родительского объекта.Проблема в том, что в нем есть поля, не относящиеся к базе данных, которые, если они установлены, должны вызывать событие after_save.Проблема, с которой я сталкиваюсь, заключается в том, что если атрибуты базы данных не обновляются, after_save никогда не срабатывает, но мне это нужно.

ActiveRecord.partial_updates = false - это значение по умолчанию в моем приложенииСохранение никогда не происходит ...

Я попытался обновить updated_at = DateTime.now, и запись не была сохранена.Только когда одно из его других свойств получает обновления, сохранение фактически срабатывает.

Note Rails 2.3.8

Ответы [ 2 ]

1 голос
/ 16 января 2011

В основном я вручную создал установщик для свойства, не являющегося базой данных, и вызвал id_will_change!, что сделало весь объект грязным. Это работает для моих нужд.

1 голос
/ 15 января 2011

Хотя я не проверял его, возможно, что включение ActiveModel::Dirty и сообщение об этих полях, не относящихся к базе данных, позволит ActiveRelation забрать их.

Дополнительная информация: http://railsapi.com/doc/rails-v3.0.3/classes/ActiveModel/Dirty.html

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