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:
parent
3a2943c54d
commit
86a571090c
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
The value of foo is: ::<%= @foo %>::
|
Loading…
Reference in New Issue