【问题标题】:What is the best way to maintain a record's edit history with Rails and ActiveRecord使用 Rails 和 ActiveRecord 维护记录编辑历史的最佳方法是什么
【发布时间】:2010-10-04 00:10:25
【问题描述】:

在 Rails 中维护记录的编辑历史最好/最干净/最简单的方法是什么?

我正在寻找日志记录 - 谁进行了编辑,何时以及能够回滚到早期版本的记录。

我的猜测是,您将在更新或删除时使用 ActiveRecord 回调,而不是更新/删除记录,您将创建一个新记录并具有某种标识符以保持相同的“记录”相关联,也许是一个字段来区分哪个记录是当前的,并且是一个版本字段。

我隐约记得看到了一些插件,但我现在似乎找不到它们。r

(有没有我不知道的术语?)

【问题讨论】:

    标签: ruby-on-rails activerecord transactions


    【解决方案1】:

    这里的答案很好,但需要一些更新。

    acts_as_audited 已重命名为已审核,请参阅 https://github.com/collectiveidea/audited。我使用它取得了巨大的成功。

    paper_trail 也可能感兴趣。 http://railscasts.com/episodes/255-undo-with-paper-trail 恢复版本有点尴尬,并且在 audited/acts_as_audited 中没有记录。 paper_trail 在这方面有更清晰的例子。

    【讨论】:

    • @srboisvert 请取消标记我的答案并将此标记为答案。
    【解决方案2】:

    acts_as_audited 胜出。您甚至可以将acts_as_versioned 与它一起使用。 plugin-page 解释了一切。浏览页面上帖子下方的讨论 cmets。开发者已发布问题,并获得了作者和其他人的积极响应。

    我在很多应用程序中都使用过这个插件,我觉得它非常有用。强烈推荐。

    这是插件页面的预览:

    acts_as_audited 是一个活动记录 记录所有修改的插件 您的模型在审计表中。它 使用多态关联 存储任何审计记录 您希望拥有的模型对象 经审计。审核日志存储 改变的模型, “动作”(创建、更新、销毁)、 更改的序列化哈希,以及 (可选)执行 行动。

    【讨论】:

    • 啊是的。审计。我知道有一个词。我就是想不起来。谢谢。
    • :) 欢迎。插件很棒。非常易于使用,并且准确地完成了审计应该具备的那些事情。在生成报告时派上用场。
    【解决方案3】:

    acts_as_versioned 应该可以满足您的需求 - http://wiki.rubyonrails.org/rails/pages/ActsAsVersioned

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-10-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-24
      • 2018-06-16
      • 1970-01-01
      相关资源
      最近更新 更多