aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack
diff options
context:
space:
mode:
authorCarlos Antonio da Silva <carlosantoniodasilva@gmail.com>2012-04-26 20:36:35 -0300
committerCarlos Antonio da Silva <carlosantoniodasilva@gmail.com>2012-04-29 14:45:06 -0300
commitd0c9c93c4a3a7da27ab8d9f53811960309f8e18f (patch)
treea14c5ff56fc74a6d61385141c540f2664439863f /actionpack
parente72374d0ff8b149bdbf8e14a703cbc2028df520c (diff)
downloadrails-d0c9c93c4a3a7da27ab8d9f53811960309f8e18f.tar.gz
rails-d0c9c93c4a3a7da27ab8d9f53811960309f8e18f.tar.bz2
rails-d0c9c93c4a3a7da27ab8d9f53811960309f8e18f.zip
Allow layout to access current object being rendered when using render partial + object
Diffstat (limited to 'actionpack')
-rw-r--r--actionpack/lib/action_view/renderer/partial_renderer.rb2
-rw-r--r--actionpack/test/template/render_test.rb4
2 files changed, 5 insertions, 1 deletions
diff --git a/actionpack/lib/action_view/renderer/partial_renderer.rb b/actionpack/lib/action_view/renderer/partial_renderer.rb
index 449cf08fd0..c7765732c7 100644
--- a/actionpack/lib/action_view/renderer/partial_renderer.rb
+++ b/actionpack/lib/action_view/renderer/partial_renderer.rb
@@ -304,7 +304,7 @@ module ActionView
object, as = @object, @variable
if !block && (layout = @options[:layout])
- layout = find_template(layout)
+ layout = find_template(layout, @locals.keys + [@variable])
end
object ||= locals[as]
diff --git a/actionpack/test/template/render_test.rb b/actionpack/test/template/render_test.rb
index 5fe725ec31..a76526f946 100644
--- a/actionpack/test/template/render_test.rb
+++ b/actionpack/test/template/render_test.rb
@@ -242,6 +242,10 @@ module RenderTestCases
assert_equal '<b class="amazon">Hello: Amazon</b><b class="yahoo">Hello: Yahoo</b>', @view.render(:partial => "test/customer", :layout => 'test/b_layout_for_partial_with_object', :collection => [ Customer.new("Amazon"), Customer.new("Yahoo") ])
end
+ def test_render_partial_with_layout_using_object_and_template_makes_object_available_in_template
+ assert_equal '<b class="amazon">Hello: Amazon</b>', @view.render(:partial => "test/customer", :layout => 'test/b_layout_for_partial_with_object', :object => Customer.new("Amazon"))
+ end
+
def test_render_partial_with_empty_array_should_return_nil
assert_nil @view.render(:partial => [])
end