Reset template variables after using render_to_string. Closes #2559

git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@2723 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
This commit is contained in:
Nicholas Seckar 2005-10-25 02:15:08 +00:00
parent 3a2943c54d
commit 86a571090c
4 changed files with 14 additions and 0 deletions

View File

@ -1,5 +1,7 @@
*SVN*
* Reset template variables after using render_to_string [skaes@web.de]
* Expose the session model backing CGI::Session
* Abbreviate RAILS_ROOT in traces

View File

@ -623,6 +623,8 @@ module ActionController #:nodoc:
def render_to_string(options = nil) #:doc:
result = render(options)
erase_render_results
@variables_added = nil
@template.instance_variable_set("@assigns_added", nil)
result
end

View File

@ -89,6 +89,10 @@ class TestController < ActionController::Base
ActionView::Base.local_assigns_support_string_keys = false
end
def render_to_string_test
@foo = render_to_string :inline => "this is a test"
end
def rescue_action(e) raise end
private
@ -209,6 +213,11 @@ class RenderTest < Test::Unit::TestCase
assert_equal "How's there? goodbyeHello: davidHello: marygoodbye\n", process_request.body
end
def test_render_to_string_resets_assigns
@request.action = "render_to_string_test"
assert_equal "The value of foo is: ::this is a test::\n", process_request.body
end
def test_nested_rendering
@request.action = "hello_world"
assert_equal "Living in a nested world", Fun::GamesController.process(@request, @response).body

View File

@ -0,0 +1 @@
The value of foo is: ::<%= @foo %>::