diff options
author | Eugen Rochko <eugen@zeonfederated.com> | 2018-08-14 19:19:32 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-08-14 19:19:32 +0200 |
commit | 8e111b753a3411b258cdb008c9a53bad696f4df1 (patch) | |
tree | 6ae9387736b8abf180c93f7f0d25c6952c04b9b2 /app/models/favourite.rb | |
parent | 018a9e4e7fdfac0f2e482f4b5fa66247afbc2ddb (diff) |
Move status counters to separate table, count replies (#8104)
* Move status counters to separate table, count replies * Migration to remove old counter columns from statuses table * Fix schema file
Diffstat (limited to 'app/models/favourite.rb')
-rw-r--r-- | app/models/favourite.rb | 13 |
1 files changed, 2 insertions, 11 deletions
diff --git a/app/models/favourite.rb b/app/models/favourite.rb index 0fce82f6f..ce7a6a336 100644 --- a/app/models/favourite.rb +++ b/app/models/favourite.rb @@ -32,20 +32,11 @@ class Favourite < ApplicationRecord private def increment_cache_counters - if association(:status).loaded? - status.update_attribute(:favourites_count, status.favourites_count + 1) - else - Status.where(id: status_id).update_all('favourites_count = COALESCE(favourites_count, 0) + 1') - end + status.increment_count!(:favourites_count) end def decrement_cache_counters return if association(:status).loaded? && (status.marked_for_destruction? || status.marked_for_mass_destruction?) - - if association(:status).loaded? - status.update_attribute(:favourites_count, [status.favourites_count - 1, 0].max) - else - Status.where(id: status_id).update_all('favourites_count = GREATEST(COALESCE(favourites_count, 0) - 1, 0)') - end + status.decrement_count!(:favourites_count) end end |