Как мога да добавя метод за печат за Audited gem в Rails?

Използвам gem 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