How can I add a print method for Audited gem in Rails?

I’m using the gem Audited in my Rails app. I want to create a way to print out the Audit record so I can have a feed of what has been changed by a User, or what has changed on an object. Currently, I have setup a method called print_audit on each object that I’m using with Audited. But this seems incredibly wrong. I would like to override the to_s method on the Audit model… but I’m unsure what the correct way of doing that would be… is the approach incorrect and if not how would I go about doing this?

Trust your instincts :slight_smile:

I'd consider the Single Responsibility Principal and write something entirely separate, e.g. an AuditReport class and whatever supporting classes/modules that requires. (TDDing will tell you what they are.)

FWIW,

Thanks for the reply. I had not heard of “SRP” and looked it up. This is the method I think I’m going to use as it seems simple and works out quite well I believe. If anyone knows of a better way I’m all ears! Thanks again Hassan!

Added file: 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