可以参考:
http://stackoverflow.com/questions/1531514/observers-vs-callbacks
其中有一段是这样的:
class Model < ActiveRecord::Base before_update :disallow_bob def disallow_bob return false if model.name == "bob" end end class ModelObserver < ActiveRecord::Observer def before_update(model) return false if model.name == "mary" end end m = Model.create(:name => "whatever") m.update_attributes(:name => "bob") => false -- name will still be "whatever" in database m.update_attributes(:name => "mary") => true -- name will be "mary" in database
Observers may only observe, they may not intervene.
If you enjoyed this post, make sure you subscribe to my RSS feed!