class Renderer

Ruby on Rails 7.0.10

Since v5.2.8.1

Available in: v5.2.8.1 v6.0.6 v6.1.7.10 v7.0.10 v7.1.6 v7.2.3 v8.0.4 v8.1.2

ActionController::Renderer allows you to render arbitrary templates without requirement of being in controller actions.

You get a concrete renderer class by invoking ActionController::Base#renderer. For example:

ApplicationController.renderer

It allows you to call method #render directly.

ApplicationController.renderer.render template: '...'

You can use this shortcut in a controller, instead of the previous example:

ApplicationController.render template: '...'

#render allows you to use the same options that you can use when rendering in a controller. For example:

FooController.render :action, locals: { ... }, assigns: { ... }

The template will be rendered in a Rack environment which is accessible through ActionController::Renderer#env. You can set it up in two ways:

  • by changing renderer defaults, like

    ApplicationController.renderer.defaults # => hash with default Rack environment
    
  • by initializing an instance of renderer by passing it a custom environment.

    ApplicationController.renderer.new(method: 'post', https: true)
    

Inherits from

Object

Constants

Attributes

Methods (defined here)

Private methods

(3) Implementation detail — not part of the public API.

Methods (inherited)

From Object (16)
From ActiveRecord::TestFixtures (4)
From ActiveSupport::Concern (3)

Type at least 2 characters to search.

↑↓ navigate · open · esc close