Как я могу добавить метод печати для Audited gem в Rails?

Я использую драгоценный камень Audited в своем приложении Rails. Я хочу создать способ распечатать запись аудита, чтобы я мог получать информацию о том, что было изменено пользователем или что изменилось в объекте. В настоящее время я установил метод с именем print_audit для каждого объекта, который я использую с Audited. Но это кажется невероятно неправильным. Я хотел бы переопределить метод to_s в модели аудита... но я не уверен, как правильно это сделать... неправильный ли подход, и если нет, то как мне это сделать?


person daveomcd    schedule 26.04.2015    source источник


Ответы (2)


Теперь для этого существует более простой способ, определенный здесь в официальная документация. Вот фрагмент, который добавит to_s к каждому экземпляру аудита:

# 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
person s_dolan    schedule 16.04.2018

Я использовал следующий метод, так как считаю его намного чище.

Добавлен файл: 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
person daveomcd    schedule 09.05.2015