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?
如果您有可用的对象,则可以调用:
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
请看一下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。