ruby-on-rails - 使用闭包表模式实现版本历史

标签 ruby-on-rails tree versioning transitive-closure-table

我有一个自定义 CMS 实现,它将内容节点存储在两个表中,如 http://www.slideshare.net/billkarwin/models-for-hierarchical-data 的“关闭表”部分所述并使用此 gem https://github.com/mceachen/closure_tree在 Ruby on Rails 3 和 MySQL 下。

现在是我实现版本历史记录的时候了,内容树中的任何更改(编辑、插入、移动、删除节点等)都会创建新版本的根节点(发布)。用户将能够查看旧版本并恢复到它们。恢复操作将创建一个较新的版本,它是已恢复版本的副本。

有没有众所周知的方法来实现这一目标?或者有没有人有这种事情的想法或示例实现?

任何输入将不胜感激。

最佳答案

State machines ?我很好奇是否有更多想法。我肯定知道有一个绝妙的解决方案,但它超出了 Rails 的范围。这是文件管理系统。我推荐的第一个是 Alfresco 。

关于ruby-on-rails - 使用闭包表模式实现版本历史,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13457479/

相关文章:

ruby-on-rails - Rails 4 - 链接中的 Font Awesome 图标

ruby-on-rails - Rails 事件管理员未定义的方法

java - TreeViewer 包无法在 ANTLR v4 w/Java 中工作

python - NLTK 实体提取从 NLTK 2.0.4 到 NLTK 3.0 的差异

ruby-on-rails - 在本地主机中使用 Apache\Phusion Passenger 为虚拟主机设置 SSL 证书时出现问题

ruby-on-rails - 在 Rails 3 中使用 group by 查询中以整数形式获取 COUNT(column)

java - 通用决策树算法代码实现

php - 使用单个 mysql 查询检查 child 是否是后代

database - 在 Android 上降级数据库

java - TransactionEventHandler 在 Node.setProperty() 上给出 javax.transaction.SystemException