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.

Ticket/Patch: http://rails.lighthouseapp.com/projects/8994/tickets/1196-counter_cache-not-decrementing-on-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.