Ruby on Rails:如何跟踪StackOverflow之类的更改实现其修订历史记录?

时间:2010-09-30 17:26:28

标签: ruby-on-rails ruby-on-rails-3 rubygems revision-history

如果我使用 Ruby on Rails 实现与StackOverflow问题修订历史相同的系统,那么我需要做些什么来实现呢?我正在创建一个像维基一样的网站,用户贡献的内容可以由其他人更新。我需要能够跟踪这些变化的历史,但我不熟悉如何实现这一点。

解决方案:

简而言之,这种方法的工作方式是创建一个额外的表来跟踪变化。表中的每一行都有一个数据的“快照”,因为它在更改记录之前存在(或者只是更改的数据)。

有许多Ruby Gems已经完成了大部分工作。以下是gems that deal with versioning/revision history的列表。看起来Paper Trail目前是最受欢迎的宝石。 Ryan Bates录制了一个提供overview of using Paper Trail的RailsCast。

2 个答案:

答案 0 :(得分:3)

编辑条目时,不删除(旧)条目,只需添加带有新版本号的新条目。如果要检索要显示的条目,请选择版本号最高的条目。如果要检索条目以显示其修订历史记录,请选择所有条目并按版本号对其进行排序。

答案 1 :(得分:1)

我知道这已经过时了但是遇到这种情况的任何人都应该结帐Paper Trail