aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatthew Draper <matthew@trebex.net>2015-05-14 22:14:13 +0930
committerMatthew Draper <matthew@trebex.net>2015-05-14 22:14:13 +0930
commit864a41bc0463e94b6e0c61d4d8d86043e6d0a64f (patch)
tree43f3b1f91fc651076ad941e263554cde09e8310c
parent7f60bedd7aca0c62d59e6f7971e73e214c2fb9db (diff)
parentbef9484cf867ab261891d3431782e60c4e17f87f (diff)
downloadrails-864a41bc0463e94b6e0c61d4d8d86043e6d0a64f.tar.gz
rails-864a41bc0463e94b6e0c61d4d8d86043e6d0a64f.tar.bz2
rails-864a41bc0463e94b6e0c61d4d8d86043e6d0a64f.zip
Merge pull request #20153 from nygrenh/remove-local_assigns-clutter
Do not put partial name to local_assigns when rendering without an object
-rw-r--r--actionview/CHANGELOG.md4
-rw-r--r--actionview/lib/action_view/renderer/partial_renderer.rb2
-rw-r--r--actionview/test/fixtures/test/_partial_name_in_local_assigns.erb1
-rw-r--r--actionview/test/template/render_test.rb8
4 files changed, 14 insertions, 1 deletions
diff --git a/actionview/CHANGELOG.md b/actionview/CHANGELOG.md
index a6d5c08fe9..40da3dc19b 100644
--- a/actionview/CHANGELOG.md
+++ b/actionview/CHANGELOG.md
@@ -1,3 +1,7 @@
+* Do not put partial name to local_assigns when rendering without an object or a collection.
+
+ *Henrik Nygren*
+
* Remove `:rescue_format` option for `translate` helper since it's no longer
supported by I18n.
diff --git a/actionview/lib/action_view/renderer/partial_renderer.rb b/actionview/lib/action_view/renderer/partial_renderer.rb
index cd151c0189..b751bca31e 100644
--- a/actionview/lib/action_view/renderer/partial_renderer.rb
+++ b/actionview/lib/action_view/renderer/partial_renderer.rb
@@ -338,7 +338,7 @@ module ActionView
end
object ||= locals[as]
- locals[as] = object
+ locals[as] = object if @has_object
content = @template.render(view, locals) do |*name|
view._layout_for(*name, &block)
diff --git a/actionview/test/fixtures/test/_partial_name_in_local_assigns.erb b/actionview/test/fixtures/test/_partial_name_in_local_assigns.erb
new file mode 100644
index 0000000000..28ee9f41c5
--- /dev/null
+++ b/actionview/test/fixtures/test/_partial_name_in_local_assigns.erb
@@ -0,0 +1 @@
+<%= local_assigns.has_key?(:partial_name_in_local_assigns) %> \ No newline at end of file
diff --git a/actionview/test/template/render_test.rb b/actionview/test/template/render_test.rb
index 22665b6844..27bbb9b6c1 100644
--- a/actionview/test/template/render_test.rb
+++ b/actionview/test/template/render_test.rb
@@ -277,6 +277,14 @@ module RenderTestCases
assert_nil @view.render(:partial => "test/customer", :collection => nil)
end
+ def test_render_partial_without_object_does_not_put_partial_name_to_local_assigns
+ assert_equal 'false', @view.render(partial: 'test/partial_name_in_local_assigns')
+ end
+
+ def test_render_partial_with_nil_object_puts_partial_name_to_local_assigns
+ assert_equal 'true', @view.render(partial: 'test/partial_name_in_local_assigns', object: 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