【问题标题】:How can I add a print method for Audited gem in Rails?如何在 Rails 中为 Audited gem 添加打印方法?
【发布时间】:2015-07-04 22:21:57
【问题描述】:

我在我的 Rails 应用程序中使用 gem Audited。我想创建一种打印审计记录的方法,以便我可以获取用户更改的内容或对象更改的内容。目前,我在每个与Audited 一起使用的对象上设置了一个名为print_audit 的方法。但这似乎是非常错误的。我想覆盖审计模型上的to_s 方法......但我不确定这样做的正确方法是什么......该方法是否不正确,如果不正确,我将如何去做?

【问题讨论】:

    标签: ruby-on-rails ruby gem acts-as-audited


    【解决方案1】:

    现在有一种更直接的方法来实现这一点,正如官方文档中定义的here。这是一个可以将 to_s 添加到每个 Audit 实例的 sn-p:

    # config/initializers/audited.rb
    class CustomAudit < Audited::Audit
      def to_s
        "This overrides the default to_s method!"
      end
    end
    
    Audited.config do |config|
      config.audit_class = CustomAudit
    end
    

    【讨论】:

      【解决方案2】:

      我使用了以下方法,因为我觉得它更干净。

      添加文件: config/initializers/audited_additional_methods.rb

      module Audited
        module Adapters
          module ActiveRecord
            class Audit < ::ActiveRecord::Base
              def to_s
                "Added my new to_s logic here"
              end
            end
          end
        end
      end
      

      【讨论】:

        猜你喜欢
        • 2017-01-19
        • 2017-02-16
        • 1970-01-01
        • 2017-05-09
        • 1970-01-01
        • 2017-05-01
        • 2015-02-05
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多