提交 f55ad960 编写于 作者: J Jeremy Kemper

Stack @output_buffer for nested rendering

上级 4d4c8e29
......@@ -106,7 +106,7 @@ def create_template_source(template, render_symbol)
locals_code << "#{key} = local_assigns[:#{key}]\n"
end
"def #{render_symbol}(local_assigns)\n#{locals_code}#{body}\nend"
"def #{render_symbol}(local_assigns)\nold_output_buffer = @output_buffer;#{locals_code}#{body}\nensure\n@output_buffer = old_output_buffer\nend"
end
# Return true if the given template was compiled for a superset of the keys in local_assigns
......@@ -125,4 +125,4 @@ def template_changed_since?(file_name, compile_time)
end
end
end
\ No newline at end of file
end
......@@ -512,7 +512,7 @@ def test_fragment_for
def test_cache_erb_fragment
@store.write('views/expensive', 'fragment content')
@controller.template.output_buffer = 'generated till now -> '
@controller.response.template.output_buffer = 'generated till now -> '
assert_equal( 'generated till now -> fragment content',
ActionView::TemplateHandlers::ERB.new(@controller).cache_fragment(Proc.new{ }, 'expensive'))
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册