0

次のような状況があります。学生オブジェクトのname属性が変更された場合、古い値を保持して別のテーブルに保存したいと思います。

したがって、 student.update_attributes(:name =>'John 2')の後に名前属性'John 1'のstudentオブジェクトがある場合、 before_updateで古い名前の値'John1'をキャプチャできるようにします。たとえば、コールバックフック。それを行うための最良の方法は何ですか?前もって感謝します。

4

1 に答える 1

3

フックでは、before_update特別なメソッドにアクセス_wasして、各フィールドの以前の値を取得できます

before_update do
  new_name = self.name     # 'John 2'
  old_name = self.name_was # 'John 1'
end
于 2012-06-04T21:48:50.780 に答える