From cb0e27cee90c9417798c9d9db78dd0eb36c7fa24 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Fri, 28 Oct 2005 07:33:54 +0000 Subject: [PATCH] Fix that render :text didn't interpolate instance variables (Closes #2629, #2626) [skaes] git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@2777 5ecf4fe2-1ee6-0310-87b1-e25e094e27de --- actionpack/CHANGELOG | 2 ++ actionpack/lib/action_controller/layout.rb | 1 + actionpack/test/controller/new_render_test.rb | 11 +++++++++++ actionpack/test/fixtures/layouts/standard.rhtml | 2 +- 4 files changed, 15 insertions(+), 1 deletion(-) diff --git a/actionpack/CHANGELOG b/actionpack/CHANGELOG index d1569931ee..402ec82f0c 100644 --- a/actionpack/CHANGELOG +++ b/actionpack/CHANGELOG @@ -1,5 +1,7 @@ *SVN* +* Fix that render :text didn't interpolate instance variables #2629, #2626 [skaes] + * Fix line number detection and escape RAILS_ROOT in backtrace Regexp [Nicholas Seckar] * Fixed document.getElementsByClassName from Prototype to be speedy again [Sam Stephenson] diff --git a/actionpack/lib/action_controller/layout.rb b/actionpack/lib/action_controller/layout.rb index 32f7864182..815a55739f 100644 --- a/actionpack/lib/action_controller/layout.rb +++ b/actionpack/lib/action_controller/layout.rb @@ -219,6 +219,7 @@ def render_with_a_layout(options = nil, deprecated_status = nil, deprecated_layo end erase_render_results + add_variables_to_assigns @template.instance_variable_set("@content_for_layout", content_for_layout) render_text(@template.render_file(layout, true), deprecated_status) else diff --git a/actionpack/test/controller/new_render_test.rb b/actionpack/test/controller/new_render_test.rb index 24c3a0e765..919875e8c3 100644 --- a/actionpack/test/controller/new_render_test.rb +++ b/actionpack/test/controller/new_render_test.rb @@ -34,6 +34,11 @@ def render_action_hello_world def render_text_hello_world render :text => "hello world" end + + def render_text_hello_world_with_layout + @variable_for_layout = ", I'm here!" + render :text => "hello world", :layout => true + end def render_custom_code render :text => "hello world", :status => "404 Moved" @@ -169,6 +174,7 @@ def determine_layout case action_name when "hello_world", "layout_test", "rendering_without_layout", "rendering_nothing_on_layout", "render_text_hello_world", + "render_text_hello_world_with_layout", "partial_only", "partial_only_with_layout", "accessing_params_in_template", "accessing_params_in_template_with_layout", @@ -226,6 +232,11 @@ def test_do_with_render_text assert_equal "hello world", @response.body end + def test_do_with_render_text_and_layout + get :render_text_hello_world_with_layout + assert_equal "hello world, I'm here!", @response.body + end + def test_do_with_render_custom_code get :render_custom_code assert_response :missing diff --git a/actionpack/test/fixtures/layouts/standard.rhtml b/actionpack/test/fixtures/layouts/standard.rhtml index fcb28ec755..368764e6f4 100644 --- a/actionpack/test/fixtures/layouts/standard.rhtml +++ b/actionpack/test/fixtures/layouts/standard.rhtml @@ -1 +1 @@ -<%= @content_for_layout %> \ No newline at end of file +<%= @content_for_layout %><%= @variable_for_layout %> \ No newline at end of file -- GitLab