diff options
Diffstat (limited to 'actionpack/lib')
-rw-r--r-- | actionpack/lib/action_controller/caching.rb | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/actionpack/lib/action_controller/caching.rb b/actionpack/lib/action_controller/caching.rb index ee606ce13d..ef9cf37589 100644 --- a/actionpack/lib/action_controller/caching.rb +++ b/actionpack/lib/action_controller/caching.rb @@ -120,7 +120,13 @@ module ActionController #:nodoc: end def expire_action(options = {}) - expire_fragment(url_for(options).split("://").last) + if options[:action].is_a?(Array) + options[:action].dup.each do |action| + expire_fragment(url_for(options.merge({ :action => action })).split("://").last) + end + else + expire_fragment(url_for(options).split("://").last) + end end class ActionCacheFilter #:nodoc: @@ -182,7 +188,6 @@ module ActionController #:nodoc: def cache_erb_fragment(binding, name = {}, options = {}) buffer = eval("_erbout", binding) - name = url_for(name) if name.is_a?(Hash) if cache = read_fragment(name, options) buffer.concat(cache) else @@ -193,14 +198,14 @@ module ActionController #:nodoc: end def write_fragment(name, content, options = {}) - name = url_for(name) if name.is_a?(Hash) + name = url_for(name).split("://").last if name.is_a?(Hash) fragment_cache_store.write(name, content, options) logger.info "Cached fragment: #{name}" unless logger.nil? content end def read_fragment(name, options = {}) - name = url_for(name) if name.is_a?(Hash) + name = url_for(name).split("://").last if name.is_a?(Hash) if cache = fragment_cache_store.read(name, options) logger.info "Fragment hit: #{name}" unless logger.nil? cache @@ -210,7 +215,7 @@ module ActionController #:nodoc: end def expire_fragment(name, options = {}) - name = url_for(name) if name.is_a?(Hash) + name = url_for(name).split("://").last if name.is_a?(Hash) fragment_cache_store.delete(name, options) logger.info "Expired fragment: #{name}" unless logger.nil? end |