オブザーバーを正確に作成する方法の説明に従ったと思います、モデルページ:
class Page
include Mongoid::Document
field :title, type: String
field :content, type: String
end
オブザーバーがあります (app/observers/page_observer.rb):
class PageObserver < Mongoid::Observer
observe :page # just to be sure!
def initialize
puts "Page observer initialized"
end
def after_update page
puts "After update page "+page
end
end
config/application.rb に追加しました:
config.mongoid.observers = :page_observer
それから私がするときrails c
、私は得る:
$ rails c
Page observer initialized
Loading development environment (Rails 3.2.13)
1.9.3p194 :005 > p = Page.first
=> #<Page _id: 5174ce01681167de23000001, title: "Hi", content: nil>
1.9.3p194 :006 > p.title = "Hi1"
=> "Hi1"
1.9.3p194 :007 > p.save
=> true
「更新後のページ」が表示されたはずではありませんp.save
か?
この単純化された例の完全なコード: https://github.com/dts/mongoid_observer_test