Rails 3 Observer - 希望学习如何为多个模型实现Observer

时间:2010-09-29 22:12:31

标签: ruby-on-rails ruby-on-rails-3 observer-pattern

我想添加一个Auditor Observer,它可以随时为3个模型(书籍,角色,作者)创建一个动作...

我最近听说过Observer功能,但无法找到有关该功能的任何文档。它是否支持Rails 3?

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

由于

1 个答案:

答案 0 :(得分:58)

Rails observers很可爱,您可以在{strong>观察者

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

它应该有用。