如果我使用 Ruby on Rails 实现与StackOverflow问题修订历史相同的系统,那么我需要做些什么来实现呢?我正在创建一个像维基一样的网站,用户贡献的内容可以由其他人更新。我需要能够跟踪这些变化的历史,但我不熟悉如何实现这一点。
简而言之,这种方法的工作方式是创建一个额外的表来跟踪变化。表中的每一行都有一个数据的“快照”,因为它在更改记录之前存在(或者只是更改的数据)。
有许多Ruby Gems已经完成了大部分工作。以下是gems that deal with versioning/revision history的列表。看起来Paper Trail目前是最受欢迎的宝石。 Ryan Bates录制了一个提供overview of using Paper Trail的RailsCast。
答案 0 :(得分:3)
编辑条目时,不删除(旧)条目,只需添加带有新版本号的新条目。如果要检索要显示的条目,请选择版本号最高的条目。如果要检索条目以显示其修订历史记录,请选择所有条目并按版本号对其进行排序。
答案 1 :(得分:1)
我知道这已经过时了但是遇到这种情况的任何人都应该结帐Paper Trail