Fixed regression for content_for #1820 [Stefan Kaes]

git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@1911 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
This commit is contained in:
David Heinemeier Hansson 2005-07-24 13:20:29 +00:00
parent b25f9af998
commit 1ae0a53d86
4 changed files with 14 additions and 3 deletions

View File

@ -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

View File

@ -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

View File

@ -1,2 +1,2 @@
<title><%= @title %></title>
<title><%= @title || @content_for_title %></title>
<%= @content_for_layout -%>

View File

@ -0,0 +1,2 @@
<% content_for :title do %>Putting stuff in the title!<% end %>
Great stuff!