diff --git a/app/logical/daily_maintenance.rb b/app/logical/daily_maintenance.rb index 5652f185d..c703397fe 100644 --- a/app/logical/daily_maintenance.rb +++ b/app/logical/daily_maintenance.rb @@ -15,5 +15,6 @@ class DailyMaintenance ForumSubscription.process_all! TagAlias.update_cached_post_counts_for_all PostDisapproval.dmail_messages! + Tag.clean_up_negative_post_counts! end end diff --git a/app/models/tag.rb b/app/models/tag.rb index 7db928dbf..8705ac511 100644 --- a/app/models/tag.rb +++ b/app/models/tag.rb @@ -57,6 +57,12 @@ class Tag < ActiveRecord::Base Tag.where(:name => tag_names).update_all("post_count = post_count - 1") Post.expire_cache_for_all(tag_names) end + + def clean_up_negative_post_counts! + Tag.where("post_count < 0").find_each do |tag| + tag.fix_post_count + end + end end def real_post_count