diff options
author | David Heinemeier Hansson <david@loudthinking.com> | 2005-07-24 13:20:29 +0000 |
---|---|---|
committer | David Heinemeier Hansson <david@loudthinking.com> | 2005-07-24 13:20:29 +0000 |
commit | 1ae0a53d861c43dff8883fc956a08404c23f180c (patch) | |
tree | 25f85878792f5bcd655872ed3bd0fecce6369a65 | |
parent | b25f9af998ad26653083e004b7a6cb9ca0061940 (diff) | |
download | rails-1ae0a53d861c43dff8883fc956a08404c23f180c.tar.gz rails-1ae0a53d861c43dff8883fc956a08404c23f180c.tar.bz2 rails-1ae0a53d861c43dff8883fc956a08404c23f180c.zip |
Fixed regression for content_for #1820 [Stefan Kaes]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@1911 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
4 files changed, 14 insertions, 3 deletions
diff --git a/actionpack/lib/action_view/helpers/capture_helper.rb b/actionpack/lib/action_view/helpers/capture_helper.rb index 1877730c7e..d430121b04 100644 --- a/actionpack/lib/action_view/helpers/capture_helper.rb +++ b/actionpack/lib/action_view/helpers/capture_helper.rb @@ -82,9 +82,9 @@ module ActionView # NOTE: Beware that content_for is ignored in caches. So you shouldn't use it # for elements that are going to be fragment cached. def content_for(name, &block) - base = controller.instance_variable_get(instance_var_name(name)) || "" + base = instance_variable_get(instance_var_name(name)) || "" data = capture(&block) - controller.instance_variable_set(instance_var_name(name), base + data) + instance_variable_set(instance_var_name(name), base + data) data end diff --git a/actionpack/test/controller/capture_test.rb b/actionpack/test/controller/capture_test.rb index a48baaeda1..eab7865937 100644 --- a/actionpack/test/controller/capture_test.rb +++ b/actionpack/test/controller/capture_test.rb @@ -4,6 +4,10 @@ class CaptureController < ActionController::Base def self.controller_name; "test"; end def self.controller_path; "test"; end + def content_for + render :layout => "talk_from_action" + end + def rescue_action(e) raise end end @@ -27,6 +31,11 @@ class CaptureTest < Test::Unit::TestCase get :capturing assert_equal "Dreamy days", @response.body.strip end + + def test_content_for + get :content_for + assert_equal "<title>Putting stuff in the title!</title>\n\nGreat stuff!", @response.body + end def test_update_element_with_capture get :update_element_with_capture diff --git a/actionpack/test/fixtures/layouts/talk_from_action.rhtml b/actionpack/test/fixtures/layouts/talk_from_action.rhtml index 215dfd27ac..187aab07a2 100644 --- a/actionpack/test/fixtures/layouts/talk_from_action.rhtml +++ b/actionpack/test/fixtures/layouts/talk_from_action.rhtml @@ -1,2 +1,2 @@ -<title><%= @title %></title> +<title><%= @title || @content_for_title %></title> <%= @content_for_layout -%>
\ No newline at end of file diff --git a/actionpack/test/fixtures/test/content_for.rhtml b/actionpack/test/fixtures/test/content_for.rhtml new file mode 100644 index 0000000000..0e47ca8c3d --- /dev/null +++ b/actionpack/test/fixtures/test/content_for.rhtml @@ -0,0 +1,2 @@ +<% content_for :title do %>Putting stuff in the title!<% end %> +Great stuff!
\ No newline at end of file |