added cached columns for post update count, post upload count, note update count, favorite count to users; fixed tests

This commit is contained in:
albert
2011-11-01 13:45:26 -04:00
parent ec362d79bf
commit cdc958d4f3
12 changed files with 126 additions and 26 deletions

View File

@@ -58,6 +58,8 @@ class Note < ActiveRecord::Base
end
def create_version
CurrentUser.increment!(:note_update_count)
versions.create(
:updater_id => updater_id,
:updater_ip_addr => updater_ip_addr,

View File

@@ -995,6 +995,8 @@ class Post < ActiveRecord::Base
module VersionMethods
def create_version
CurrentUser.increment!(:post_update_count)
if created_at == updated_at
versions.create(
:rating => rating,

View File

@@ -69,6 +69,7 @@ class Upload < ActiveRecord::Base
post = convert_to_post
post.distribute_files
if post.save
CurrentUser.increment!(:post_upload_count)
update_attributes(:status => "completed", :post_id => post.id)
else
update_attribute(:status, "error: " + post.errors.full_messages.join(", "))

View File

@@ -182,12 +182,14 @@ class User < ActiveRecord::Base
def add_favorite!(post)
return if Favorite.exists?(:user_id => id, :post_id => post.id)
Favorite.create(:user_id => id, :post_id => post.id)
increment!(:favorite_count)
post.add_favorite!(self)
end
def remove_favorite!(post)
return unless Favorite.exists?(:user_id => id, :post_id => post.id)
Favorite.destroy_all(:user_id => id, :post_id => post.id)
decrement!(:favorite_count)
post.remove_favorite!(self)
end
end