2010-09-29 62 views
26

我想补充的审计观察其确实行动随时after_create 3款(书籍,人物,作家)...Rails 3的观察 - 想学习如何实现观察员多个型号

我最近听说过Observer功能,但找不到任何有关此功能的文档。它支持Rails 3吗?

如何为3个模型创建一个after_create的Auditor Observer?

感谢

+8

不要忘记在你的application.rb'config.active_record.observers =:auditor_observer'的第25行添加这个。 – 2011-03-31 18:27:46

回答

58

Rails的observers是甜的,您可以在一个观察者内observe多个模型

首先,你需要生成你的观察:

rails g observer Auditor 

然后,在你新鲜auditor_observer.rb文件定义您想要的模型observe,然后添加after_create回调。

class AuditorObserver < ActiveRecord::Observer 
    observe :model_foo, :model_bar, :model_baz 

    def after_create(record) 
    #do something with `record` 
    end 
end 

在application.rb中添加

config.active_record.observers = :auditor_observer 

,它应该工作。

+0

奇怪,由于某种原因,它不起作用。我添加了一个调试器记录器,没有写入任何内容。是否需要其他一些步骤才能让观察员参与进来? – AnApprentice 2010-10-01 01:35:55

+4

K发现它需要是“ActiveRecord :: Observer”,它需要在config目录下的application.rb文件中定义。 – AnApprentice 2010-10-01 01:43:29

+0

是的你是对的,编辑答案。 – jpemberthy 2010-10-01 13:51:34