在ActiveModel中是否只有/ except过滤器可用于观察者

时间:2012-09-03 08:03:07

标签: ruby-on-rails-3 mongoid activemodel

我正在尝试为我的项目中的NotificationMessage生成Task。我正在使用Mongoid 2

我创建了NotificationObserver,此观察者是否可以仅Message观察after_create并观察Task和{{1} after_create }}。像这里描述的那样:http://jamesgolick.com/2009/8/5/observational-better-observers-for-activerecord.html

已经很长时间了,所以我认为它现在可能已经开箱即用,但我在文档中找不到它。

1 个答案:

答案 0 :(得分:0)

为不同的类使用两个不同的观察者,这些观察者很容易处理,你可以相应地捕获回调

或试试这个

class NotificationObserver < ActiveRecord::Observer
   observe :task, :message

   def after_create(record)
      if record.class == Task
         do task stuff
      else
         do message stuff
      end
   end

   def after_update(record)
      if record.class == Task
         do task stuff
      end
   end
end