Rails 2.3.8使活动记录变脏

时间:2011-01-15 14:59:05

标签: ruby-on-rails activerecord

我有一个ActiveRecord对象。它使用父对象的嵌套属性进行更新。问题是它有一些非数据库字段,如果设置需要触发after_save事件。我遇到的问题是,如果没有更新数据库属性,则after_save永远不会触发,但我需要它。

ActiveRecord.partial_updates = false是我应用中的默认设置。拯救永远不会发生......

我尝试更新updated_at = DateTime.now并且它不会触发要保存的记录。只有当其中一个属性获得更新时,保存才会实际触发。

注意Rails 2.3.8

2 个答案:

答案 0 :(得分:1)

虽然我没有对其进行测试,但包含ActiveModel::Dirty并告知其非数据库字段可能允许ActiveRelation选择它们。

更多信息:http://railsapi.com/doc/rails-v3.0.3/classes/ActiveModel/Dirty.html

答案 1 :(得分:1)

基本上我手动为非数据库属性创建了一个setter,并调用了id_will_change!,这使整个对象变脏。这符合我的需要。