diff options
author | Joshua Peek <josh@joshpeek.com> | 2008-10-30 15:07:47 -0500 |
---|---|---|
committer | Joshua Peek <josh@joshpeek.com> | 2008-10-30 15:07:47 -0500 |
commit | ec38c84ce1ff7f0888becc15e3f58337ca807e25 (patch) | |
tree | 2ef45c777eeef49d42f6fa4b1589f97ffad90435 | |
parent | ef53d915164da7f757d03c4a70fe38e374c08b14 (diff) | |
download | rails-ec38c84ce1ff7f0888becc15e3f58337ca807e25.tar.gz rails-ec38c84ce1ff7f0888becc15e3f58337ca807e25.tar.bz2 rails-ec38c84ce1ff7f0888becc15e3f58337ca807e25.zip |
Dup local assigns for partial collections so nil values doesn't get overwritten [#1250 state:resolved]
-rw-r--r-- | actionpack/lib/action_view/partials.rb | 2 | ||||
-rw-r--r-- | actionpack/test/fixtures/test/_customer.erb | 2 | ||||
-rw-r--r-- | actionpack/test/template/render_test.rb | 4 |
3 files changed, 6 insertions, 2 deletions
diff --git a/actionpack/lib/action_view/partials.rb b/actionpack/lib/action_view/partials.rb index 373bb92dc4..8841099900 100644 --- a/actionpack/lib/action_view/partials.rb +++ b/actionpack/lib/action_view/partials.rb @@ -181,7 +181,7 @@ module ActionView ActionController::RecordIdentifier.partial_path(object, controller.class.controller_path) template = _pick_partial_template(_partial_path) local_assigns[template.counter_name] = index - result = template.render_partial(self, object, local_assigns, as) + result = template.render_partial(self, object, local_assigns.dup, as) index += 1 result end.join(spacer) diff --git a/actionpack/test/fixtures/test/_customer.erb b/actionpack/test/fixtures/test/_customer.erb index 872d8c44e6..d8220afeda 100644 --- a/actionpack/test/fixtures/test/_customer.erb +++ b/actionpack/test/fixtures/test/_customer.erb @@ -1 +1 @@ -Hello: <%= customer.name %>
\ No newline at end of file +Hello: <%= customer.name rescue "Anonymous" %>
\ No newline at end of file diff --git a/actionpack/test/template/render_test.rb b/actionpack/test/template/render_test.rb index da8c782880..476e651757 100644 --- a/actionpack/test/template/render_test.rb +++ b/actionpack/test/template/render_test.rb @@ -115,6 +115,10 @@ class ViewRenderTest < Test::Unit::TestCase assert_nil @view.render(:partial => "test/customer", :collection => nil) end + def test_render_partial_with_nil_values_in_collection + assert_equal "Hello: davidHello: Anonymous", @view.render(:partial => "test/customer", :collection => [ Customer.new("david"), nil ]) + end + def test_render_partial_with_empty_array_should_return_nil assert_nil @view.render(:partial => []) end |