potential fix for #1310

This commit is contained in:
r888888888
2013-05-06 10:20:25 -07:00
parent f3a65748c2
commit a958a3bf4a
2 changed files with 9 additions and 10 deletions

View File

@@ -324,8 +324,6 @@ class Post < ActiveRecord::Base
def update_tag_post_counts
decrement_tags = tag_array_was - tag_array
increment_tags = tag_array - tag_array_was
Post.execute_sql("UPDATE tags SET post_count = post_count - 1 WHERE name IN (?)", decrement_tags) if decrement_tags.any?
Post.execute_sql("UPDATE tags SET post_count = post_count + 1 WHERE name IN (?)", increment_tags) if increment_tags.any?
Post.expire_cache_for_all(decrement_tags) if decrement_tags.any?
Post.expire_cache_for_all(increment_tags) if increment_tags.any?
Post.expire_cache_for_all([""]) if new_record? || id <= 100_000
@@ -338,7 +336,7 @@ class Post < ActiveRecord::Base
self.tag_count_copyright = 0
self.tag_count_character = 0
categories = Tag.categories_for(tag_array)
categories = Tag.categories_for(tag_array, :disable_caching => true)
categories.each_value do |category|
self.tag_count += 1

View File

@@ -66,20 +66,21 @@ class Tag < ActiveRecord::Base
select_value_sql("SELECT category FROM tags WHERE name = ?", tag_name).to_i
end
def category_for(tag_name)
Cache.get("tc:#{Cache.sanitize(tag_name)}") do
def category_for(tag_name, options = {})
if options[:disable_caching]
select_category_for(tag_name)
else
Cache.get("tc:#{Cache.sanitize(tag_name)}") do
select_category_for(tag_name)
end
end
end
def categories_for(tag_names)
def categories_for(tag_names, options)
Array(tag_names).inject({}) do |hash, tag_name|
hash[tag_name] = category_for(tag_name)
hash[tag_name] = category_for(tag_name, options)
hash
end
# Cache.get_multi(tag_names, "tc") do |name|
# select_category_for(name)
# end
end
end