Bye Bye, Observers

Observers will be no more as of Rails 4, farewell, never been much of a
fan. However, I’m using it in one of my gems which enables model
attributes
for use with a WYSIWYM editor. The resulting markup is persisted, but in
order to use it in a view, it has to be nokogiried in a helper which
fragment caches the result. This cache has to be zapped once the model
instance is either updated or destroyed. An observer for after_update
and
after_destroy seemed the obvious choice at that time.

What would be a Rails 4 approach for this without observers? Inject
after_update and after_destroy callbacks directly into the model?

-sven

If you want to maintain separation you could add after_update and
after_destroy callbacks that only send a message using
ActiveSupport:notifications.

You then write a subscriber to that notification which zaps the cache.

Same result, but instead of observing, it listens. It also makes it
explicit in your model code that after update and destroy a message is
sent into the system which may be acted upon.

Same result, but instead of observing, it listens. It also makes it
explicit in your model code that after update and destroy a message is
sent into the system which may be acted upon.

Nice! Thanks a lot for the hint! -sven