Method: ActionView::RenderablePartial#render_partial

Defined in:
lib/action_view/renderable_partial.rb

#render_partial(view, object = nil, local_assigns = {}, as = nil) ⇒ Object



27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
# File 'lib/action_view/renderable_partial.rb', line 27

def render_partial(view, object = nil, local_assigns = {}, as = nil)
  object ||= local_assigns[:object] || local_assigns[variable_name]

  if object.nil? && view.respond_to?(:controller)
    ivar = :"@#{variable_name}"
    object =
      if view.controller.instance_variable_defined?(ivar)
        ActiveSupport::Deprecation::DeprecatedObjectProxy.new(
          view.controller.instance_variable_get(ivar),
          "#{ivar} will no longer be implicitly assigned to #{variable_name}")
      end
  end

  # Ensure correct object is reassigned to other accessors
  local_assigns[:object] = local_assigns[variable_name] = object
  local_assigns[as] = object if as

  render_template(view, local_assigns)
end