I've already filed a bug: http://dev.rubyonrails.org/ticket/10804
I'm still not sure if i'm missing something.
When I update a child by setting the association method to nil, the
counter of the parent does not get decremented. For a code example see
the first answer to my ticket.
The problem seems to be that the @owner variable in
holds the child object, not the parent. That's why it cant have the
counter_cache_column and the test:
if @owner[counter_cache_name] and not @owner.new_record?
I really would appreciate anyone who gives this a try with his
installation and reports the results.
The original bug (and a patch) about this issue has been posted about
2 years ago!