Active Record observers broken: can't be used for "before" callbacks

I was just wondering what about a report that I made almost 2 months ago: Active Record observers broken

I think it’s a pretty big bug. In Rails 3, creating an observer with a “before_save” callback (for instance) will result in all observed models being unable to save, unconditionally.

This is because the key method (notify_observers) of “Observable” module from Ruby (in use here) is always returning false, without giving us access to the return value of callback methods. The only way of fixing it is to stop using the Ruby implementation which doesn’t give us access to return values of callback methods.

I’ve attached my proposed fix to the ticket. I’ve decoupled from Observable Ruby module since we haven’t been using most of its code anyway.

Nasty one. Your fix looks great. Thanks Mislav!

jeremy