Ruby on Rails Monday, August 30, 2010

On Aug 30, 8:02 pm, badnaam <asitkmis...@gmail.com> wrote:
> 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
> Please help

--
You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
To post to this group, send email to rubyonrails-talk@googlegroups.com.
To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.

No comments:

Post a Comment