跳到內容 跳到搜尋
方法
U

實體公開方法

use_renderer(*args)

別名為:use_renderers

use_renderers(*args)

將一或多個繪製程式或繪製器新增到控制器動作的 _renderers 中。

當從 ActionController::Metal 控制器繪製,或將可用的繪製器程序新增至特定控制器時,這非常有用。

ActionController::BaseActionController::API 都包含 ActionController::Renderers::All,讓所有繪製程式皆可以在控制器中使用。請參閱 Renderers::RENDERERSRenderers.add

由於 ActionController::Metal 控制器無法繪製,此控制器必須包含 AbstractController::RenderingActionController::RenderingActionController::Renderers,並且至少具有一個繪製程式。

可以透過將繪製器名稱傳遞給 use_renderers,指定要包含哪些繪製器,而不是包含 ActionController::Renderers::All 及所有繪製器。例如,只包含 :json 繪製程式(_render_with_renderer_json)的控制器可能如下所示

class MetalRenderingController < ActionController::Metal
  include AbstractController::Rendering
  include ActionController::Rendering
  include ActionController::Renderers

  use_renderers :json

  def show
    render json: record
  end
end

你必須指定 use_renderer,否則 controller.renderercontroller._renderers 將為 nil,而動作將會失敗。

也別名為:use_renderer
# File actionpack/lib/action_controller/metal/renderers.rb, line 127
def use_renderers(*args)
  renderers = _renderers + args
  self._renderers = renderers.freeze
end