instance method
render
Ruby on Rails 8.0.4
Since v3.0.20Signature
render(view, locals, buffer = nil, implicit_locals: [], add_to_stack: true, &block)
Render a template. If the template was not compiled yet, it is done exactly before rendering.
This method is instrumented as “!render_template.action_view”. Notice that we use a bang in this instrumentation because you don’t want to consume this in production. This is only slow if it’s being listened to.
Parameters
-
viewreq -
localsreq -
bufferopt = nil -
implicit_localskey = [] -
add_to_stackkey = true -
blockblock
Source
# File actionview/lib/action_view/template.rb, line 271
def render(view, locals, buffer = nil, implicit_locals: [], add_to_stack: true, &block)
instrument_render_template do
compile!(view)
if strict_locals? && @strict_local_keys && !implicit_locals.empty?
locals_to_ignore = implicit_locals - @strict_local_keys
locals.except!(*locals_to_ignore)
end
if buffer
view._run(method_name, self, locals, buffer, add_to_stack: add_to_stack, has_strict_locals: strict_locals?, &block)
nil
else
result = view._run(method_name, self, locals, OutputBuffer.new, add_to_stack: add_to_stack, has_strict_locals: strict_locals?, &block)
result.is_a?(OutputBuffer) ? result.to_s : result
end
end
rescue => e
handle_render_error(view, e)
end
Defined in actionview/lib/action_view/template.rb line 271
· View on GitHub
· Improve this page
· Find usages on GitHub
Defined in ActionView::Template