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
上级 caf6ff6a
......@@ -180,11 +180,16 @@ def expire_action(options = {})
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 @@ def before(controller)
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
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册