diff options
author | Rhenium <rhenium@rhe.jp> | 2013-10-03 07:30:23 +0900 |
---|---|---|
committer | Rhenium <rhenium@rhe.jp> | 2013-10-03 07:30:23 +0900 |
commit | ceeb95cb0da8c70fc827d4390920fb7014d5e6d9 (patch) | |
tree | 91cee7e376a12612b1cff182a453e8bf5cef4198 /app/models/favorite.rb | |
parent | 431be3dd571a8555c8dbc1308a85cf3fe2097773 (diff) | |
download | aclog-ceeb95cb0da8c70fc827d4390920fb7014d5e6d9.tar.gz |
add reactions_count to Tweet
Diffstat (limited to 'app/models/favorite.rb')
-rw-r--r-- | app/models/favorite.rb | 12 |
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 |