aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Heinemeier Hansson <david@loudthinking.com>2005-07-24 13:20:29 +0000
committerDavid Heinemeier Hansson <david@loudthinking.com>2005-07-24 13:20:29 +0000
commit1ae0a53d861c43dff8883fc956a08404c23f180c (patch)
tree25f85878792f5bcd655872ed3bd0fecce6369a65
parentb25f9af998ad26653083e004b7a6cb9ca0061940 (diff)
downloadrails-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
-rw-r--r--actionpack/lib/action_view/helpers/capture_helper.rb4
-rw-r--r--actionpack/test/controller/capture_test.rb9
-rw-r--r--actionpack/test/fixtures/layouts/talk_from_action.rhtml2
-rw-r--r--actionpack/test/fixtures/test/content_for.rhtml2
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