【问题标题】:Ruby on Rails: How to track changes like StackOverflow implements its revision history?Ruby on Rails:如何跟踪 StackOverflow 之类的更改实现其修订历史?
【发布时间】:2026-01-06 10:55:01
【问题描述】:

如果我要使用 Ruby on Rails 实现一个与 * 问题修订历史相同的系统,我需要做什么才能实现它?我正在创建一个类似于 wiki 的站点,用户贡献的内容可以由其他人更新。我需要能够跟踪这些更改的历史记录,但我不熟悉如何实施。

解决方案:

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

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

【问题讨论】:

  • 您找到任何合适的解决方案了吗?我还想开发一种类似于 wiki in rails 的功能。这显示了正确的修订。
  • @krunal shah 我正在解决这个问题。看看这个RailsCast about Paper Trail

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


【解决方案1】:

编辑条目时,您不会删除(旧)条目,您只需添加具有新版本号的新条目。当您想要检索一个条目以进行显示时,您选择具有最高版本号的条目。当您想检索一个条目以显示其修订历史时,您可以选择所有条目并按版本号对其进行排序。

【讨论】:

    【解决方案2】:

    我知道这是旧的,但任何遇到此问题的人都应该查看Paper Trail

    【讨论】: