aboutsummaryrefslogtreecommitdiffstats
path: root/app/models/favorite.rb
diff options
context:
space:
mode:
authorRhenium <rhenium@rhe.jp>2013-10-03 07:30:23 +0900
committerRhenium <rhenium@rhe.jp>2013-10-03 07:30:23 +0900
commitceeb95cb0da8c70fc827d4390920fb7014d5e6d9 (patch)
tree91cee7e376a12612b1cff182a453e8bf5cef4198 /app/models/favorite.rb
parent431be3dd571a8555c8dbc1308a85cf3fe2097773 (diff)
downloadaclog-ceeb95cb0da8c70fc827d4390920fb7014d5e6d9.tar.gz
add reactions_count to Tweet
Diffstat (limited to 'app/models/favorite.rb')
-rw-r--r--app/models/favorite.rb12
1 files changed, 10 insertions, 2 deletions
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