保持属性的先前值

时间:2012-06-04 21:20:58

标签: ruby-on-rails-3 activerecord

我遇到以下情况:如果学生对象的名称属性发生变化,我希望保留旧值并将其保存到另一个表中。

所以,如果我有一个名为“John 1”的学生对象,则在 student.update_attributes(:name =>'John 2')之后我希望能够捕获例如, before_update 回调挂钩中的旧名称值“John 1”。最好的方法是什么?提前谢谢。

1 个答案:

答案 0 :(得分:3)

before_update挂钩中,您可以访问特殊的_was方法来获取每个字段的上一个值

before_update do
  new_name = self.name     # 'John 2'
  old_name = self.name_was # 'John 1'
end