模型实例版本控制?跟踪以前的记录

问题描述

| 如果我想创建一个像“ 0”这样的模型,它存储着一条个人记录(比如说记录时间为100m破折号)。现在,如果我希望人们设置新的个人记录(最快100m),该如何将其存储在数据库中。 我当时在考虑像bedDB这样的版本控制数据库,但这听起来有些过分。我也可以引用具有另一个ID的记录,例如
Record
:id
:name
:record_id #=> this refers to the original Record
但是,这似乎也是一个肮脏的解决方案(将模型自身引用)。现在,我确定这是一个常见问题(重写模型实例,但保留历史记录),我想知道是否有一个好的解决方案?     

解决方法

        您可能想要研究像papertrail这样的宝石,然后可以为对象设置版本控制。 使用gem也很容易,在设置好之后即可使用它,它会返回一系列版本:
>> widget = Widget.find 42
>> widget.versions             # [<Version>,<Version>,...