module ActionController::Renderers::ClassMethods
Public Instance Methods
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.
# File lib/action_controller/metal/renderers.rb, line 128 def use_renderers(*args) renderers = _renderers + args self._renderers = renderers.freeze end