2009-09-28 22 views
88

ActiveRecord属性(=データベースからロードされた値)の元の値を取得する方法はありますか?Railsで属性の元の値を取得する方法

私は、タスクを更新すると(実際には、テーブル内の別のキーに移動)ハッシュテーブルからオブジェクトを削除することですオブザーバーでこのような何か

before_save object 
    do_something_with object.original_name 
end 

をしたいです。

答えて

224

あなたの属性に_wasを追加すると、以前の価値が得られます。

+0

おかげで、私が探していたまさに! –

+75

レールはとても素晴らしいです – digitalWestie

+7

例: 'self.context':' self.context_was' –

8

ActiveRecordのattributes_before_type_castメソッドは、型キャストと逆シリアル化が発生する前に属性のハッシュを返します。