counter_cache not decrementing on delete

Hi guys,

Right now when using counter_cache and using delete to destroy associated records, for example: @post.comments.delete(comment) the cache column is not being updated.

This was reported in ticket #1196, i confirmed it was actually a bug, and made a patch to fix this with tests for has_many and HMT associations.

It’s working if you use record.destroy, but it should also be updated when using delete.


I believe that that is the expected behavior. Delete does not call any
callbacks either and it does not destroy associated records in
has_many relationships. I guess it could be a rails gotcha..

HTH, Jason

Hey Jason,

Delete method destroy the associated records on HM and HMT associations, that is what the implementation of delete does in association_collection.rb, and if you look at the code in the delete method callbacks are called too.