diff options
Diffstat (limited to 'actionview/lib/action_view/renderer')
-rw-r--r-- | actionview/lib/action_view/renderer/partial_renderer.rb | 32 |
1 files changed, 17 insertions, 15 deletions
diff --git a/actionview/lib/action_view/renderer/partial_renderer.rb b/actionview/lib/action_view/renderer/partial_renderer.rb index 1509726a37..92bd0ccf91 100644 --- a/actionview/lib/action_view/renderer/partial_renderer.rb +++ b/actionview/lib/action_view/renderer/partial_renderer.rb @@ -308,9 +308,7 @@ module ActionView if @collection render_collection else - instrument(:partial) do - render_partial - end + render_partial end end @@ -331,22 +329,26 @@ module ActionView end def render_partial - view, locals, block = @view, @locals, @block - object, as = @object, @variable + instrument(:partial) do |payload| + view, locals, block = @view, @locals, @block + object, as = @object, @variable - if !block && (layout = @options[:layout]) - layout = find_template(layout.to_s, @template_keys) - end + view.instance_variable_set(:@log_payload_for_partial_render, payload) - object = locals[as] if object.nil? # Respect object when object is false - locals[as] = object if @has_object + if !block && (layout = @options[:layout]) + layout = find_template(layout.to_s, @template_keys) + end - content = @template.render(view, locals) do |*name| - view._layout_for(*name, &block) - end + object = locals[as] if object.nil? # Respect object when object is false + locals[as] = object if @has_object - content = layout.render(view, locals){ content } if layout - content + content = @template.render(view, locals) do |*name| + view._layout_for(*name, &block) + end + + content = layout.render(view, locals){ content } if layout + content + end end # Sets up instance variables needed for rendering a partial. This method |