我有跟蹤該領域updated_at
的模型。如何訪問之前的updated_at?
有沒有辦法跟蹤以前的updated_at
?
例如
的updated_at = A(其中A是一個實際的日期時間戳)
一些工作完成然後save
稱爲
的updated_at = B(其中B是一個實際的日期時間戳)
有沒有一種方法可以訪問以前的updated_at
即A?
我有跟蹤該領域updated_at
的模型。如何訪問之前的updated_at?
有沒有辦法跟蹤以前的updated_at
?
例如
的updated_at = A(其中A是一個實際的日期時間戳)
一些工作完成然後save
稱爲
的updated_at = B(其中B是一個實際的日期時間戳)
有沒有一種方法可以訪問以前的updated_at
即A?
請看看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寶石。
如果有可用的對象,那麼你可以撥打:
object.previous_changes
這將返回你的哈希如下顯示哪些屬性已經改變:
{"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
如果您使用paper trail gem將很有用。 它會堅持以前的記錄在磁盤上,這可能會影響您的應用程序性能。 更好的實現內存解決方案的方式來存儲以前的記錄。
我認爲這些方法只適用於更改實例對象的值。當您保存時,這些更改將被重置。該問題詢問如何在保存發生後訪問先前的值,所以我不確定這會回答問題。 – hypern