Verwenden eines Beobachters in einer Engine

Ich habe eine Engine erstellt, die grundsätzlich für alle unsere Projekte verwendet wird.

Nun möchte ich a hinzufügenbefore_create Rückruf an alle Modelle dieser Engine.

Nach einigem Suchen fand ich heraus, dass ein Beobachter der richtige Weg ist.

Also habe ich diesen Beobachter erstellt:

<code># app/models/baco/auth/auth_observer

class Baco::Auth::AuthObserver < ActiveRecord::Observer

  def before_create( record )
    p record
  end

end
</code>

Und jetzt muss ich es der Anwendung hinzufügen, aber natürlich gibt es in meiner Engine keine solche Datei wie application.rb, also habe ich es in meine Engine gestellt:

<code># lib/baco/auth/engine.rb

require 'rails'
require 'devise'

module Baco
  module Auth
    class Engine < Rails::Engine

      engine_name 'baco_auth'
      config.active_record.observers = :auth_observer

    end
  end
end
</code>

Beim Starten des Servers wird jedoch die folgende Fehlermeldung angezeigt:

<code>.../.rvm/gems/ruby-1.9.3-p125/gems/activesupport-3.2.1/lib/active_support/inflector/methods.rb:229:in `block in constantize': uninitialized constant AuthObserver (NameError)
</code>

Antworten auf die Frage(1)

Ihre Antwort auf die Frage