rails activerecord observer usage

要使Observer工作,第一种做法是在controller里声明, 这样unit test就无法加载此observer到console中

# app/models/flower_observer.rbclass FlowerObserver < ActiveRecord::Observer  observe Flower  def after_create(model)    # model.do_something!  endend# controller(s)class FlowerController < ApplicationController  observer :flower_observerend

第二种做法可以加载observer到console中:

# app/models/foo_bar.rbclass FooBar < ActiveRecord::BaseendFooBarObserver.instance

最后一个方法是在config/environment.rb中加载此observer:

config.active_record.observers = :flower_observer