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

时间:2011-06-12 02:05:26

标签: ruby-on-rails activerecord

如果我想创建一个像Record这样的模型来存储个人记录(比如100米短跑的记录时间)。现在,如果我希望人们设置新的个人记录(更快的时间为100米),我将如何将其存储在数据库中。

我在考虑像couchDB这样的版本控制数据库,但这听起来有些过分。我也可以用其他id引用记录,比如

Record
:id
:name
:record_id #=> this refers to the original Record

然而,这似乎也是一个肮脏的解决方案(将模型重新加入自身)。现在我确定这是一个常见问题(重写模型实例,但保留历史记录),我想知道是否有一个很好的解决方案?

1 个答案:

答案 0 :(得分:2)

您可能希望查看像papertrail这样的宝石,然后您可以为该对象设置版本控制。 使用gem也很容易,在你设置之后就可以使用它,它会返回一个版本的数组:

>> widget = Widget.find 42
>> widget.versions             # [<Version>, <Version>, ...