This is the main entry point for rendering. It basically delegates to other objects like TemplateRenderer and PartialRenderer
which actually renders the template.
The Renderer
will parse the options from the render
or render_body
method and render a partial or a template based on the options. The TemplateRenderer
and PartialRenderer
objects are wrappers which do all the setup and logic necessary to render a view and a new object is created each time render
is called.
Methods
Attributes
[RW] | lookup_context |
Class Public methods
new(lookup_context)
📝 Source code
# File actionview/lib/action_view/renderer/renderer.rb, line 16
def initialize(lookup_context)
@lookup_context = lookup_context
end
🔎 See on GitHub
Instance Public methods
render(context, options)
Main render entry point shared by Action View and Action Controller.
📝 Source code
# File actionview/lib/action_view/renderer/renderer.rb, line 21
def render(context, options)
render_to_object(context, options).body
end
🔎 See on GitHub
render_body(context, options)
Render but returns a valid Rack body. If fibers are defined, we return a streaming body that renders the template piece by piece.
Note that partials are not supported to be rendered with streaming, so in such cases, we just wrap them in an array.
📝 Source code
# File actionview/lib/action_view/renderer/renderer.rb, line 38
def render_body(context, options)
if options.key?(:partial)
[render_partial(context, options)]
else
StreamingTemplateRenderer.new(@lookup_context).render(context, options)
end
end
🔎 See on GitHub