aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack
diff options
context:
space:
mode:
Diffstat (limited to 'actionpack')
-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