如何确定after_save回调的更改属性



我不能在after_save回调上捕获更改的属性,但我可以在after_update回调上捕获它们。我认为after_save只是after_create和after_update的组合。如果有人能给我一点提示,我会很感激的。

class Student < ApplicationRecord
after_save: after_save_callback

def after_save_callback
if username_changed?  ### This is always false
# do something
end
end
end
student = Student.create(name: 'John Doe', username: 'abcdef')
student.username = '123456'
student.save

我的Rails版本是5.0.7.

您可以使用saved_change_to_username?

attribute_changed?在after回调中的行为将在下一个版本的Rails中改变。新的返回值将反映save返回后调用方法的行为(例如,与现在返回的相反)。为了保持当前的行为,使用saved_change_to_attribute?代替。

最新更新