我有一个自定义 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/