如何访问上一个 updated_at?

How to access previous updated_at?

我有一个模型,我在其中跟踪字段 updated_at

有什么方法可以跟踪之前的updated_at

例如

updated_at = A(其中 A 是实际的日期时间戳)

完成一些工作,然后调用 save

updated_at = B(其中 B 是实际的日期时间戳)

有什么方法可以访问之前的 updated_at 即 A?

如果您有可用的对象,那么您可以调用:

object.previous_changes

这会return你一个散列如下显示哪些属性已经改变:

{"name"=>["foo", "bar"], "updated_at"=>[Tue, 19 Apr 2016 08:19:40 UTC +00:00, Mon, 25 Apr 2016 10:49:47 UTC +00:00]} 

参考: previous_changes

请看ActiveModel::Dirty模块:

object.updated_at           # returns current value
object.updated_at_changed?  # returns true or false if value has changed
object.updated_at_was       # return last value
object.updated_at_change    

如果您想跟踪所有更改的值,您可以使用 Paper Trail Gem.

如果你使用paper trail gem,它会很有用。 它会将之前的记录保留在磁盘上,这可能会影响您的应用程序性能。 实现内存解决方案以存储以前记录的更好方法。