我可以使用审计gem进行审计,而不是存储更改

gio*_*gio 1 ruby-on-rails

我已经开始在Rails 3应用程序中使用audited gem.

它工作正常,但我有一个问题,我有一个大文本列的表.我希望在此列中的数据保存在审计表中的"audited_changes"作为表将在尺寸上吹出来.

我知道我可以用以下内容来禁止对该列的审计:except =>:my_big_text_column

因此,在总结我想知道用户编辑文本,但我希望保存每次的文本的副本.如果我取消对该列的审核,如果他们编辑该列,我将完全没有审核.

gio*_*gio 5

我找到了一个适用于我想要审核的答案.我刚刚创建了自己的Audited :: Adapters :: ActiveRecord :: Audit版本并将其放在初始化器中.

我添加了一个before_save方法来操作audited_changes哈希.我只是将哈希值更改为对指定的大文本列说"已更改".似乎做我需要的.

 module Audited
  module Adapters
    module ActiveRecord
      class Audit < ::ActiveRecord::Base
        before_save :remove_text_fields

        def remove_text_fields
          if self.audited_changes.include?("case_notes")
            self.audited_changes["case_notes"]="changed"
          end
        end

      end
    end
  end
end
Run Code Online (Sandbox Code Playgroud)