我遇到以下情况:如果学生对象的名称属性发生变化,我希望保留旧值并将其保存到另一个表中。
所以,如果我有一个名为“John 1”的学生对象,则在 student.update_attributes(:name =>'John 2')之后我希望能够捕获例如, before_update 回调挂钩中的旧名称值“John 1”。最好的方法是什么?提前谢谢。
答案 0 :(得分:3)
在before_update
挂钩中,您可以访问特殊的_was
方法来获取每个字段的上一个值
before_update do
new_name = self.name # 'John 2'
old_name = self.name_was # 'John 1'
end