If infer_extension is true, the cache path
extension is looked up from the request's path and format. This is
desirable when reading and writing the cache, but not when expiring the
cache - expire_action should expire the same files regardless
of the request format.
# File lib/action_controller/caching/actions.rb, line 190 def initialize(controller, options = {}, infer_extension = true) if infer_extension @extension = controller.params[:format] options.reverse_merge!(format: @extension) if options.is_a?(Hash) end path = controller.url_for(options).split('://', 2).last @path = normalize!(path) end
# File lib/action_controller/caching/actions.rb, line 201 def normalize!(path) ext = URI.parser.escape(extension) if extension path << 'index' if path[-1] == / path << ".#{ext}" if extension and !path.split('?', 2).first.ends_with?(".#{ext}") URI.parser.unescape(path) end