RoR:在我的应用程序中创建版本控制功能?

时间:2011-02-07 02:49:49

标签: ruby-on-rails version-control

在我的记录管理应用程序中实现版本控制的轨道方式是什么?

我的系统允许用户管理记录,我希望允许他们查看记录的历史版本。我知道而不是更新记录我会在每次用户“更新”记录时创建记录和相关模型的新实例(每个记录< / strong> has_many 类别优势)。我如何确保记录的不同版本全部链接在一起(即创建的新更新记录将作为记录A的新版本关联,所以当我点击“显示所有列表”时记录A“)的版本。

这是理论上的思考,因为我还没有开始编码,如果我错过任何我应该考虑的事情,请告诉我。

谢谢

3 个答案:

答案 0 :(得分:1)

每次用户更新时都会创建一个新的记录实例,如上所述,拥有一个辅助ID,将同一记录的所有不同版本组合在一起,然后在控制器中运行检查(使用某种隐藏值) )查看是否要保存记录或创建新记录。

然后,您可以通过查找具有唯一secondary_id的最近更新/创建的记录来检索每条记录的最新版本。

答案 1 :(得分:0)

一个好的起点可能是vestal versions gem,它保存了修改记录的历史记录

答案 2 :(得分:0)

以下是我的2个见解:

第一个简单的:

您保存了一个ID较高的记录,当您阅读它时,您会获得更高的ID。如果你想知道过去不要过滤ids。

2nd(来自SAP的部分):

您的记录有2个补充字段,即startTime,stopTime。这是记录开始进入行动并停止行动的时间。插入新记录,更新最后一个记录的stopTime,现在将其作为新记录的startTime,以及新记录的stopTime的世界末尾