Adds, by name, a renderer or renderers to the _renderers
available to call within controller actions.
It is useful when rendering from an ActionController::Metal
controller or otherwise to add an available renderer proc to a specific
controller.
Both ActionController::Base
and
ActionController::API
include
ActionController::Renderers::All
, making all renderers
available in the controller. See Renderers::RENDERERS
and
Renderers.add
.
Since ActionController::Metal
controllers cannot render, the
controller must include AbstractController::Rendering
,
ActionController::Rendering
, and
ActionController::Renderers
, and have at least one renderer.
Rather than including ActionController::Renderers::All
and
including all renderers, you may specify which renderers to include by
passing the renderer name or names to use_renderers
. For
example, a controller that includes only the :json
renderer
(_render_with_renderer_json
) might look like:
class MetalRenderingController < ActionController::Metal
include AbstractController::Rendering
include ActionController::Rendering
include ActionController::Renderers
use_renderers :json
def show
render json: record
end
end
You must specify a use_renderer
, else the
controller.renderer
and controller._renderers
will be nil
, and the action will fail.