aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJose Fernandez <joseferper@gmail.com>2010-02-23 18:50:05 +0100
committerwycats <wycats@gmail.com>2010-03-05 08:52:10 -0800
commita04b44910e57387bd1bcfbd95c3a6754a08e77af (patch)
tree4bc3eac717d6ed84db64b78bed044a5ddc3222a5
parent8da026cb797519deac807721096fab5182ca61af (diff)
downloadrails-a04b44910e57387bd1bcfbd95c3a6754a08e77af.tar.gz
rails-a04b44910e57387bd1bcfbd95c3a6754a08e77af.tar.bz2
rails-a04b44910e57387bd1bcfbd95c3a6754a08e77af.zip
Solved a problem that prevented render :file => work in layouts
Signed-off-by: wycats <wycats@gmail.com>
-rw-r--r--actionpack/lib/action_view/render/rendering.rb2
-rw-r--r--actionpack/test/fixtures/test/layout_render_file.erb2
-rw-r--r--actionpack/test/template/render_test.rb5
3 files changed, 8 insertions, 1 deletions
diff --git a/actionpack/lib/action_view/render/rendering.rb b/actionpack/lib/action_view/render/rendering.rb
index 64cc0caf11..28b79bfcb7 100644
--- a/actionpack/lib/action_view/render/rendering.rb
+++ b/actionpack/lib/action_view/render/rendering.rb
@@ -102,7 +102,7 @@ module ActionView
ActiveSupport::Notifications.instrument("action_view.render_template",
:identifier => template.identifier, :layout => layout.try(:identifier)) do
- content = template.render(self, locals)
+ content = template.render(self, locals) {|*name| _layout_for(*name) }
@_content_for[:layout] = content
if layout
diff --git a/actionpack/test/fixtures/test/layout_render_file.erb b/actionpack/test/fixtures/test/layout_render_file.erb
new file mode 100644
index 0000000000..2f8e921c5f
--- /dev/null
+++ b/actionpack/test/fixtures/test/layout_render_file.erb
@@ -0,0 +1,2 @@
+<% content_for :title do %>title<% end -%>
+<%= render :file => 'layouts/yield' -%> \ No newline at end of file
diff --git a/actionpack/test/template/render_test.rb b/actionpack/test/template/render_test.rb
index 338ada8b0e..6dbadc9304 100644
--- a/actionpack/test/template/render_test.rb
+++ b/actionpack/test/template/render_test.rb
@@ -233,6 +233,11 @@ module RenderTestCases
@view.render(:file => "test/nested_layout.erb", :layout => "layouts/yield")
end
+ def test_render_with_file_in_layout
+ assert_equal %(\n<title>title</title>\n\n),
+ @view.render(:file => "test/layout_render_file.erb")
+ end
+
if '1.9'.respond_to?(:force_encoding)
def test_render_utf8_template_with_magic_comment
with_external_encoding Encoding::ASCII_8BIT do