跟踪Rails中的修订版

时间:2012-09-13 22:34:51

标签: ruby-on-rails version-control

我希望在为项目管理构建的Rails实例中跟踪一些相对基本的修订。我很惊讶地发现这个话题很少,所以我想我会把它发布在这里。也许我只是在寻找错误的地方?我会清楚地知道这一点:我只想使用别人的宝石(如Paper Trails),除非有人能告诉我&#39真的是我唯一的选择。在理论上考虑这个练习不仅仅是最适合生产的练习。

我的基本组织理念是这样的:一个Project模型,其中有Revision个模型,由created_at组织。 Project基本上只是一个ID,大多数数据都位于Revision中。第一个Revision包含所有必要的数据 - 用户参与项目,到期时间等等。然后,最简单的方法是复制Revision,并进行更改,对于每个后续更改。但这似乎每次都会在表格中添加大量不必要的数据,特别是如果只改变了12个字段中的一个。

我对Rails很新,因此一些MVC,更强烈的面向对象的东西对我来说仍然是一种新的东西。我的想法是让Revision仅包含created_at,创建它的User以及实际更改的任何字段。但如果这是最好的策略,我将如何在Rails中压缩这些数据?也就是说,如果我有Revision s的这个表:

Project_ID   | Title   | Description   | Due Date   | Created_at | Created_by
-------------|---------|---------------|------------|------------|-----------------
1            | Test    | Test project  | 9/28/2012  | 9/10/2012  | Ben
1            |         |               | 9/31/2012  | 9/13/2012  | Stuart
1            |         | Changed proj  |            | 9/13/2012  | Liz

而且,实际上,这是最好的方法,如何将Test,Changed proj,9/31/2012弄为Project且ID为1?如果这不是最佳方式......那是什么?

另外需要注意的是,如果重要的是,其中一些字段会通过has_manyhas_many :through连接到其他模型。对我来说,这排除了Revision模型只包含修改字段名称和新内容的想法。

我想在不使用别人的图书馆的情况下这样做。感觉这是一个相对较小的问题,我不知道如何开始解决。但也许我试图打开比你感觉更大的虫子?

1 个答案:

答案 0 :(得分:0)

这个话题实际上有相当多的数额。以下是可能有用的链接列表:

我建议您始终查看Ruby Toolbox您需要的宝石,并查看Railscasts获取教程。