如何访问以前的updated_at?

RPV*_*RPV 2 ruby ruby-on-rails ruby-on-rails-3

我有模型,我跟踪该领域updated_at.

有没有办法跟踪前一个updated_at

例如

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

然后save调用一些工作

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

有没有办法可以访问前一个updated_at即A?

dp7*_*dp7 6

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

object.previous_changes
Run Code Online (Sandbox Code Playgroud)

这将返回一个哈希,如下所示,显示哪些属性已更改:

{"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]} 
Run Code Online (Sandbox Code Playgroud)

参考: previous_changes


Jen*_*ish 5

请看一下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    
Run Code Online (Sandbox Code Playgroud)

或者

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