0

我希望在为项目管理构建的 Rails 实例中跟踪一些相对基本的修订。我很惊讶在这个话题上发现很少,所以我想我会把它贴在这里。也许我只是在寻找错误的地方?我会在接近顶部时明确表示:我只是想使用某人的宝石(如 Paper Trails),除非有人能告诉我这确实是我唯一的选择。认为这是一个理论上的练习,而不是一个最适合生产的时间练习。

My basic organization idea is this: one Project model with many Revision models, organized by created_at. The Project is basically just an ID, with most data housed in the Revisions. The first Revision contains all necessary data - which users are involved in the project, when it's due, etc. Then the easiest thing to do would be to duplicate that Revision, with changes, for each subsequent change. But that seems to be adding a lot of unnecessary data to the table every time, especially if only one of 12 fields is changed.

我对 Rails 很陌生,所以一些 MVC,更强大的面向对象的东西对我来说仍然是新的。我的想法是Revision只包含created_atUser创建它的人以及任何实际更改的字段。但如果这是最好的策略,我将如何在 Rails 中展平这些数据?也就是说,如果我有这个表用于Revisions:

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/2012ID Project1?如果这不是最好的解决方法……那是什么?

另一件需要注意的事情是,其中一些字段将通过has_many和连接到其他模型has_many :through。对我来说,这排除了Revision使用仅包含修改字段名称和新内容的模型的想法。

我想这样做而不只是使用别人的图书馆。感觉就像一个相对较小的问题,我只是不知道如何开始解决。但也许我正试图打开一个比感觉大得多的蠕虫罐?

4

1 回答 1

0

这个话题实际上有相当多的内容。以下是可能有帮助的链接列表:

我建议您始终检查Ruby Toolbox以获取所需的 gem,并查看Railscasts以获取教程。

于 2012-09-13T22:39:49.663 回答