You are overwriting the 'save' method entirely, which overwrites the
original behavior of save. The way ActiveRecord works the save method
will check to see if you are saving a new record or updating an
original, by calling "create_or_update".
If you are creating a new record the 'create' method is called. This
method is actually aliased to 'create_with_callbacks', which invokes
the callback stack for before_create, etc.
You can specify the callbacks you want to use in the following
callback( :before_create )
# ... write to disk
callback( :after_create )
#... other stuff....
OR you can overwrite the create/callback chain:
# YOUR CREATE FUNCTIONALITY HERE
alias_method_chain :create, :callbacks
Now when you call save, your "create" method will be used over
ActiveRecord's. Now you don't even have to overrirde save, because you
can put your "save" logic in the create method. Likewise you'd want to
do the same for the "update" and "destroy" methods as well.