在Rails 4中after_save方法中previous_changes为空。
解决方法:
用changed_attributes或@previously_changed代替。
ActiveModel::Dirty 274行:
def changes_applied # :doc:
@previously_changed = changes
@changed_attributes = ActiveSupport::HashWithIndifferentAccess.new
end
因为在实例方法中after_save还没有保存到数据库中。
而previous_changes在记录保存到数据库中生效。
本文探讨了在 Rails4 中使用 after_save 方法时遇到的问题,即 previous_changes 返回空值的情况,并提供了解决方案:建议使用 changed_attributes 或 @previously_changed 替代。文章还解释了这些方法的工作原理和技术细节。
176

被折叠的 条评论
为什么被折叠?



