2011-01-15 9 views
2

私はActiveRecordオブジェクトを持っています。親オブジェクトのネストされた属性を使用して更新されます。問題は、after_saveイベントをトリガする必要がある場合、非データベースフィールドがいくつかあることです。私が抱えている問題は、データベースの属性が更新されていない場合、after_saveは決して起動しないが、私はそれが必要であるということです。Rails 2.3.8でアクティブレコードが汚れています

ActiveRecord.partial_updates = falseは、私のアプリではデフォルトです。セーブは起こりません...

updated_at = DateTime.nowを更新しようとしましたが、保存されるレコードがトリガーされません。他のプロパティのうちの1つが更新を取得したときだけ、セーブが実際にトリガされます。

ノートのRails 2.3.8

+0

after_saveコールバックはどのように指定しますか? – polarblau

+0

私はこれを試していませんが、YourModel.partial_updates = falseのヘルプは重要ですか? – jmcnevin

答えて

1

は基本的に私は手動で非データベースプロパティのセッターを作成し、オブジェクト全体が汚れて作られたid_will_change!を呼び出しました。これは私の必要に応えます。

1

私はそれをテストしていないけれども、それはActiveModel::Dirty含め、それら以外のデータベースフィールドについては、それを言っている可能性がありますと、それらをピックアップActiveRelationできるようになります。

さらに詳しい情報:http://railsapi.com/doc/rails-v3.0.3/classes/ActiveModel/Dirty.html

関連する問題