【问题标题】: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