默认情况下,在每个索引操作的渲染调用上指定一个额外选项

Specify an extra option on render call by default on every index action

我有一个控制器

class Api::V1::InvoicesController < ApplicationController

  def index
    @invoices = Invoice.all

    render json: @invoices, each_serializer: Api::V1::InvoicePreviewSerializer 
  end
end

在每个控制器上,我将指定使用的序列化程序是用 Api::V1::

然后是型号名称,然后是型号名称,然后是 PreviewSerializer

我如何在应用程序控制器上指定在每个索引操作上追加 each_serializer: Api::V1::MODEL_NAMEPreviewController

我没有测试过这个,但我认为它应该像这样工作:

# in the ApplicationController
def render(*args)
  if action_name == 'index'
    options = args.extract_options!
    options[:each_serializer] = Api::V1::InvoicePreviewSerializer
    args << options
  end

  super(*args)
end

希望有用并有所帮助!