From 7a2d6baa1c2f1392ce184b1a9f022d174de2dbed Mon Sep 17 00:00:00 2001 From: Tekin Suleyman Date: Sat, 16 Aug 2008 11:03:34 +0100 Subject: [PATCH] Passing the :as option to a partial collection sets a counter based on its value. --- actionpack/lib/action_view/renderable_partial.rb | 5 ++++- actionpack/test/template/render_test.rb | 6 ++++++ 2 files changed, 10 insertions(+), 1 deletions(-) diff --git a/actionpack/lib/action_view/renderable_partial.rb b/actionpack/lib/action_view/renderable_partial.rb index 342850f..1f50069 100644 --- a/actionpack/lib/action_view/renderable_partial.rb +++ b/actionpack/lib/action_view/renderable_partial.rb @@ -28,7 +28,10 @@ module ActionView # Ensure correct object is reassigned to other accessors local_assigns[:object] = local_assigns[variable_name] = object - local_assigns[as] = object if as + if as + local_assigns[as] = object + local_assigns["#{as}_counter"] = local_assigns[counter_name] + end render_template(view, local_assigns) end diff --git a/actionpack/test/template/render_test.rb b/actionpack/test/template/render_test.rb index 31cfdce..ea349d3 100644 --- a/actionpack/test/template/render_test.rb +++ b/actionpack/test/template/render_test.rb @@ -86,6 +86,12 @@ class ViewRenderTest < Test::Unit::TestCase assert_equal "local_inspector,local_inspector_counter,object", @view.render(:partial => "test/local_inspector", :collection => [ Customer.new("mary") ]) end + + def test_render_partial_collection_with_as_sets_counter + assert_equal "customer,customer_counter,local_inspector,local_inspector_counter,object", + @view.render(:partial => "test/local_inspector", :collection => [ Customer.new("mary") ], :as => :customer) + end + # TODO: The reason for this test is unclear, improve documentation def test_render_partial_and_fallback_to_layout -- 1.5.5.4