Counter cache not decrementing

This is what I have

    belongs_to :user, :counter_cache => true
    belongs_to :vote_item, :counter_cache => true
    belongs_to :vote_topic, :counter_cache => true

##User model

def vote_for(vid, vtid)
        Vote.create(:user_id => self.id, :vote_item_id =>
vid, :vote_topic_id => vtid)
    end

    def cancel_vote(vid, vtid)
        Vote.find(:first, :select => "id", :conditions =>
['vote_item_id = ? AND vote_topic_id = ? AND user_id = ?', vid, vtid,
self.id]).destroy
    end

When a vote is created the votes_count in VoteItem and VoteTopic are
updated correctly. But when a vote is destroyed or cancelled the
counter is not decremented.

Please help

This is what I have

belongs\_to :user, :counter\_cache => true
belongs\_to :vote\_item, :counter\_cache => true
belongs\_to :vote\_topic, :counter\_cache => true

##User model

def vote_for(vid, vtid)
Vote.create(:user_id => self.id, :vote_item_id =>
vid, :vote_topic_id => vtid)
end

def cancel\_vote\(vid, vtid\)
    Vote\.find\(:first, :select => "id", :conditions =>

['vote_item_id = ? AND vote_topic_id = ? AND user_id = ?', vid, vtid,
self.id]).destroy
end

When a vote is created the votes_count in VoteItem and VoteTopic are
updated correctly. But when a vote is destroyed or cancelled the
counter is not decremented.

Stab in the dark: because your select clause only includes id, rails
doesn't know the user_id/vote_item_id/vote_topic_id and so doesn't
know which user/vote_item/vote_topic to update.

Fred

Bulls eye! That was it