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

AnA*_*ice 26 ruby-on-rails observer-pattern ruby-on-rails-3

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

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

如何创建一个Auditor Observer,为3个模型执行after_create操作?

谢谢

jpe*_*thy 58

Rails 观察者很甜蜜,你可以observe在一个观察者中使用多个模型

首先,您需要生成您的观察者:

rails g observer Auditor
Run Code Online (Sandbox Code Playgroud)

然后,在新鲜的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 
Run Code Online (Sandbox Code Playgroud)

在application.rb中添加

config.active_record.observers = :auditor_observer
Run Code Online (Sandbox Code Playgroud)

它应该工作.

  • K结果它需要是"ActiveRecord :: Observer",它需要在config目录的application.rb文件中定义. (4认同)
  • 您可以在生成脚本的类名中省略"Observer":"rails g observer Auditor"生成AuditorObserver. (4认同)