在Rails中维护记录编辑历史的最佳/最干净/最简单的方法是什么?
我正在寻找日志记录 - 谁进行了编辑,何时以及能够回滚到早期版本的记录.
我的猜测是你会在更新或删除时使用ActiveRecord回调,而不是更新/删除记录,你会创建一个新的记录,并有一些标识符来保持相关的"记录"关联,也许是一个字段来区分哪个记录是当前的和版本字段.
我依稀记得看到一些插件,但我现在似乎无法找到它们
(我不知道这个术语吗?)
acts_as_audited赢得了胜利.你甚至可以使用acts_as_versioned.该插件页的说明了一切.浏览页面上帖子下方的讨论评论.开发人员已发布问题并获得了作者和其他人的积极回应.
我在许多应用程序中使用过这个插件,我发现它非常有用.强烈推荐.
以下是插件页面的预览:
acts_as_audited是一个Active Record插件,用于在审计表中记录对模型的所有修改.它使用多态关联来存储您希望审计的任何模型对象的审计记录.审计日志存储更改所在的模型,"操作"(创建,更新,销毁),更改的序列化哈希以及执行操作的用户(可选).
这里的答案很好,但需要一些更新.
acts_as_audited已重命名为audited,请参阅https://github.com/collectiveidea/audited.我用它取得了巨大的成功.
paper_trail也可能是有意义的.http://railscasts.com/episodes/255-undo-with-paper-trail恢复版本在audited/acts_as_audited中有点尴尬且没有记录.paper_trail在这方面有更清晰的例子.