2016-09-12 2 views
0

Ich füge das Audited-ActiveRecord-Juwel zu meiner Rails 4-Anwendung hinzu. Um den Edelstein zu implementieren, muss ich einen Methodenaufruf audited zu jedem Modell hinzufügen.Wie fügen Sie die 'audited' Methodenaufrufe zu allen ActiveRecord Modellen in Rails 4 hinzu?

Ist es möglich, diese Methode an einem einzigen Ort einzufügen, anstatt sie jedem meiner ActiveRecord-Modelle hinzuzufügen?

https://rubygems.org/gems/audited-activerecord

Der geprüfte Edelstein ermöglicht es mir Paste audited in jedes Modell jedoch zu tun, wie ich versuche, Revision hinzuzufügen, ohne audited in 50+ bestehenden Modelle sowie zukünftige Modelle einfügen zu müssen.

Zum Beispiel:

class ModelOne < ActiveRecord::Base 
    audited 
    ... 
end 

class ModelTwo < ActiveRecord::Base 
    audited 
    ... 
end 

class ModelN < ActiveRecord::Base 
    audited 
    ... 
end 
+0

Vielen Dank für Ihre Hilfe.Ich habe nur die 'audited' -Methode manuell zu jedem ActiveRecord-Modell hinzugefügt, wie in der Frage gezeigt. –

Antwort

0

können Sie concerns verwenden, das zu tun, aber müssen Sie dieses Modul aus concerns in jeder Modelldatei enthalten. Zum Beispiel:

class SomethingModel 
    include Auditable 
    #... 
end 

class OtherModel 
    include Auditable 
    #... 
end 


# app/models/concerns/auditable.rb 
module Auditable 
    extend ActiveSupport::Concern 
    #Your methods from Audited-Active-Record 
end 
+0

Ich habe diese Methode ein paar verschiedene Möglichkeiten versucht, aber das Ergebnis löst eine Ausnahme aus. Diese Antwort hat mir geholfen, eine andere Antwort zu finden, die mich zu meinem endgültigen Ansatz führte. http://StackOverflow.com/Questions/20824470/Adding-Scope-to-activerecord- causes-hierarchy-error Nochmals vielen Dank. –

1

Sie können audited auf Activerecord :: Base rufen einen Initialisierer verwenden. Dies wird es in alle Ihre ActiveRecord-Modelle aufnehmen.

# config/initializers/audited.rb 
module Audited 
    extend ActiveSupport::Concern 

    included do 
    audited 
    end 
end 

ActiveRecord::Base.include Audited 
Verwandte Themen