Rails 5-使用经过审核的gem查看更改

Dim*_*ter 3 ruby-on-rails acts-as-audited ruby-on-rails-5

在为学习RoR而构建的应用中,我想添加变更跟踪并为此使用Audited gem。虽然很清楚如何将其添加到模型中,但如何查看更改?

我想在每个页面上为不同的对象/类/模型添加一个链接/按钮,以打开带有审核日志的视图。即列出所有更改(日期/时间,字段,旧值,新值,按用户),并按更改的日期/时间排序。

找不到任何文档。所有帮助入门的帮助。

dns*_*nsh 5

几个月前与Papertrail Gem合作时,我需要确切的功能。我修改了代码,使其可用于经过审核的gem。我希望下面的haml代码能给您一个很好的开始。

%table.table.table-hover
  %thead
    %tr
      %th Type
      %th When
      %th Who
      %th What Changed
    - model.audits.order(:created_at).each do |audit|
      %tr
        %td= audit.action
        %td= audit.created_at
        %td= audit.user.name
        %td
          - audit.audited_changes.each do |k, v|
            %b= k.titleize
            from
            %b= "'#{v[0]}'"
            to
            %b= "'#{v[1]}'"
            %br
Run Code Online (Sandbox Code Playgroud)

该代码是不言自明的,如果您通过https://github.com/collectiveidea/audited

audited_changes的说明:对于audited_changes,我们具有类似的哈希值audit.audited_changes # => {"name"=>["Steve", "Ryan"]}。这意味着您具有以字符串为键的哈希值和具有两个值的数组。第一个值在更新之前,第二个值在更新之后。