From ceeb95cb0da8c70fc827d4390920fb7014d5e6d9 Mon Sep 17 00:00:00 2001 From: Rhenium Date: Thu, 3 Oct 2013 07:30:23 +0900 Subject: add reactions_count to Tweet --- app/models/favorite.rb | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'app/models/favorite.rb') diff --git a/app/models/favorite.rb b/app/models/favorite.rb index edf50a3..44a8ae4 100644 --- a/app/models/favorite.rb +++ b/app/models/favorite.rb @@ -1,12 +1,20 @@ class Favorite < ActiveRecord::Base - belongs_to :tweet, counter_cache: true + belongs_to :tweet belongs_to :user + after_create do + Tweet.update_counters(self.tweet_id, favorites_count: 1, reactions_count: 1) + end + + after_destroy do + Tweet.update_counters(self.tweet_id, favorites_count: -1, reactions_count: -1) + end + def self.from_receiver(msg) transaction do t = Tweet.from_receiver(msg["tweet"]) u = User.from_receiver(msg["user"]) - f = logger.quietly { self.create!(tweet: t, user: u) } + f = logger.quietly { t.favorites.create!(user: u) } logger.debug("Created Favorite: #{msg["user"]["id"]} => #{msg["tweet"]["id"]}") return f end -- cgit v1.2.3