【发布时间】:2012-04-20 00:41:14
【问题描述】:
我创建了一个基本上用于我们所有项目的引擎。
现在我要做的是为这个引擎中的所有模型添加一个before_create 回调。
经过一番搜索,我发现观察者是要走的路。
所以,我创建了这个观察者:
# app/models/baco/auth/auth_observer
class Baco::Auth::AuthObserver < ActiveRecord::Observer
def before_create( record )
p record
end
end
现在我需要将它添加到应用程序中,但是在我的引擎中当然没有 application.rb 这样的文件,所以我将它放在我的引擎中:
# 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
但我在启动服务器时收到以下错误:
.../.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)
【问题讨论】:
标签: ruby-on-rails observer-pattern rails-engines