module ActionView::Helpers::RenderingHelper

def render(options = {}, locals = {}, &block)

Otherwise, a partial is rendered using the second parameter as the locals hash.

passing in the current view context.
If an object responding to +render_in+ is passed, +render_in+ is called on the object,

If no options hash is passed or if :update is specified, then:

type of text/plain from ActionDispatch::Response object.
* :body - Renders the text passed in, and inherits the content
text/html.
performs HTML escape on the string first. Setting the content type as
* :html - Renders the HTML safe string passed in out, otherwise
type as text/plain.
* :plain - Renders the text passed in out. Setting the content
* :inline - Renders an inline template similar to how it's done in the controller.
* :file - Renders an explicit template file (this used to be the old default), add +:locals+ to pass in those.
* :partial - See ActionView::PartialRenderer.

Returns the result of a render that's dictated by the options hash. The primary options are:
def render(options = {}, locals = {}, &block)
  case options
  when Hash
    in_rendering_context(options) do |renderer|
      if block_given?
        view_renderer.render_partial(self, options.merge(partial: options[:layout]), &block)
      else
        view_renderer.render(self, options)
      end
    end
  else
    if options.respond_to?(:render_in)
      options.render_in(self, &block)
    else
      view_renderer.render_partial(self, partial: options, locals: locals, &block)
    end
  end
end