Counter cache not decrementing

15 views
Skip to first unread message

badnaam

unread,
Aug 30, 2010, 3:02:38 PM8/30/10
to Ruby on Rails: Talk
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

Frederick Cheung

unread,
Aug 30, 2010, 3:16:28 PM8/30/10
to Ruby on Rails: Talk
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
> Please help

badnaam

unread,
Aug 30, 2010, 3:34:44 PM8/30/10
to Ruby on Rails: Talk
Bulls eye! That was it

On Aug 30, 12:16 pm, Frederick Cheung <frederick.che...@gmail.com>
wrote:
Reply all
Reply to author
Forward
0 new messages