diff --git a/app/models/category.rb b/app/models/category.rb index b7e71fc0834..66458783069 100644 --- a/app/models/category.rb +++ b/app/models/category.rb @@ -936,7 +936,7 @@ class Category < ActiveRecord::Base end def url - @@url_cache.defer_get_set(self.id) do + @@url_cache.defer_get_set(self.id.to_s) do "#{Discourse.base_path}/c/#{slug_path.join("/")}/#{self.id}" end end diff --git a/lib/distributed_cache.rb b/lib/distributed_cache.rb index bc710f26564..f39956ae1ff 100644 --- a/lib/distributed_cache.rb +++ b/lib/distributed_cache.rb @@ -14,6 +14,8 @@ class DistributedCache < MessageBus::DistributedCache end def defer_get_set(k, &block) + raise TypeError if !Rails.env.production? && !k.is_a?(String) + return self[k] if hash.key? k value = block.call self.defer_set(k, value)