Rails mongoid 中的 Observers 应用配置

ane · 2014年06月12日 · 最后由 billy 回复于 2014年06月12日 · 1642 次阅读

原文中要使用 Observers,需要 application.rb 中注册。像这样

config.mongoid.observers = :article_observer, :audit_observer

目前我只是在 rails console 中使用 (我这里用的zeus console),直接在 console 中require 'monogoid'

同时直接在 console 中创建了 Observers

[45] pry(main)> class ArticlemoObserver < Mongoid::Observer
[45] pry(main)*   def before_create (article)
[45] pry(main)*     Notifications.article("[email protected]", "New article", article).deliver
[45] pry(main)*   end
[45] pry(main)* end
[32] pry(main)> class Articlemo
[32] pry(main)*   include Mongoid::Document
[32] pry(main)*   field :name, type: String
[32] pry(main)*   field :body, type:String
[32] pry(main)*   before_create :send_message
[32] pry(main)*   protected
[32] pry(main)*   def send_message
[32] pry(main)*     p "call before_create function 'send_message'"
[32] pry(main)*   end
[32] pry(main)* end

所有的一切只是为了测试一下 Observers 的效果。

目前貌似 ArticlemoObserver 没有加载,是什么情况?难道这种直接写在 console 的方式不能代替写在 application.rb 中?

没错,没有经过初始化,config 变量里面没有这个东西,所以关联建立不起来的。

需要 登录 后方可回复, 如果你还没有账号请 注册新账号