From 977671c226c205c0d26e9bca65cacf05b71d545f Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Thu, 19 May 2005 18:59:43 +0000 Subject: Optimize ActionCacheFilter by using url_for less #1230 [skaen] git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@1326 5ecf4fe2-1ee6-0310-87b1-e25e094e27de --- actionpack/lib/action_controller/caching.rb | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'actionpack/lib') diff --git a/actionpack/lib/action_controller/caching.rb b/actionpack/lib/action_controller/caching.rb index 7749b07815..55a4b77fda 100644 --- a/actionpack/lib/action_controller/caching.rb +++ b/actionpack/lib/action_controller/caching.rb @@ -180,11 +180,16 @@ module ActionController #:nodoc: class ActionCacheFilter #:nodoc: def initialize(*actions) @actions = actions + @action_urls = {} + end + + def action_url(controller) + @action_urls[controller.action_name] ||= controller.url_for.split("://").last end def before(controller) return unless @actions.include?(controller.action_name.intern) - if cache = controller.read_fragment(controller.url_for.split("://").last) + if cache = controller.read_fragment(action_url(controller)) controller.rendered_action_cache = true controller.send(:render_text, cache) false @@ -193,7 +198,7 @@ module ActionController #:nodoc: def after(controller) return if !@actions.include?(controller.action_name.intern) || controller.rendered_action_cache - controller.write_fragment(controller.url_for.split("://").last, controller.response.body) + controller.write_fragment(action_url(controller), controller.response.body) end end end -- cgit v1.2.3