Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 我可以使用审计gem进行审计而不存储更改吗_Ruby On Rails - Fatal编程技术网

Ruby on rails 我可以使用审计gem进行审计而不存储更改吗

Ruby on rails 我可以使用审计gem进行审计而不存储更改吗,ruby-on-rails,Ruby On Rails,我已经开始在Rails 3应用程序中使用经过审核的gem 它工作正常,但我有一个问题,我有一个大的文本列表。 我不希望将此列中的数据保存在审核表的“已审核的\u更改”中,因为该表的大小会变大 我知道我可以使用类似于:except=>:my\u big\u text\u列的内容来抑制对该列的审核 总之,我确实想知道用户已经编辑了文本,但我不想每次都保存一份该文本的副本。如果我禁止对该列进行审核,那么如果他们编辑该列,我将不会得到任何审核记录。我找到了一个适合我审核方式的答案。 我刚刚创建了自己版本

我已经开始在Rails 3应用程序中使用经过审核的gem

它工作正常,但我有一个问题,我有一个大的文本列表。 我希望将此列中的数据保存在审核表的“已审核的\u更改”中,因为该表的大小会变大

我知道我可以使用类似于:except=>:my\u big\u text\u列的内容来抑制对该列的审核


总之,我确实想知道用户已经编辑了文本,但我不想每次都保存一份该文本的副本。如果我禁止对该列进行审核,那么如果他们编辑该列,我将不会得到任何审核记录。

我找到了一个适合我审核方式的答案。 我刚刚创建了自己版本的Audited::Adapters::ActiveRecord::Audit,并将其放入初始值设定项中

我添加了一个before\u save方法来处理已审核的\u更改哈希。 对于指定的大文本列,我只是将散列改为“changed”。 似乎做了我需要的

 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
模块已审核
模块适配器
模块活动记录
类审核<::ActiveRecord::Base
保存前:删除\u文本\u字段
def删除文本字段
如果自我审计的情况发生变化,包括(“案例注释”)
自我审核的变更[“案例注释”]=“变更”
结束
结束
结束
结束
结束
结束

我找到了一个适合我如何审计的答案。 我刚刚创建了自己版本的Audited::Adapters::ActiveRecord::Audit,并将其放入初始值设定项中

我添加了一个before\u save方法来处理已审核的\u更改哈希。 对于指定的大文本列,我只是将散列改为“changed”。 似乎做了我需要的

 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
模块已审核
模块适配器
模块活动记录
类审核<::ActiveRecord::Base
保存前:删除\u文本\u字段
def删除文本字段
如果自我审计的情况发生变化,包括(“案例注释”)
自我审核的变更[“案例注释”]=“变更”
结束
结束
结束
结束
结束
结束

您是否尝试过对该列禁用审核?是的,但没有列更改的记录。您是否尝试过对该列禁用审核?是的,但没有列更改的记录。