From c9397e684c081ce7245efcfa7962f03203574f36 Mon Sep 17 00:00:00 2001 From: Jeremy Kemper Date: Fri, 8 Jun 2007 05:01:35 +0000 Subject: Action caching is limited to GET requests returning 200 OK status. Closes #3335. git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@6970 5ecf4fe2-1ee6-0310-87b1-e25e094e27de --- actionpack/lib/action_controller/caching.rb | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) (limited to 'actionpack/lib/action_controller/caching.rb') diff --git a/actionpack/lib/action_controller/caching.rb b/actionpack/lib/action_controller/caching.rb index f77cf207f5..f9f3c37c1c 100644 --- a/actionpack/lib/action_controller/caching.rb +++ b/actionpack/lib/action_controller/caching.rb @@ -240,20 +240,22 @@ module ActionController #:nodoc: end def after(controller) - return if !@actions.include?(controller.action_name.intern) || controller.rendered_action_cache + return if !@actions.include?(controller.action_name.intern) || controller.rendered_action_cache || !caching_allowed(controller) controller.write_fragment(controller.action_cache_path.path, controller.response.body) end - + private - def set_content_type!(controller, extension) controller.response.content_type = Mime::EXTENSION_LOOKUP[extension].to_s if extension end - + def path_options_for(controller, options) ((path_options = options[:cache_path]).respond_to?(:call) ? path_options.call(controller) : path_options) || {} end - + + def caching_allowed(controller) + controller.request.get? && controller.response.headers['Status'].to_i == 200 + end end class ActionCachePath -- cgit v1.2.3