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

时间:2017-07-20 11:20:49

标签: ruby-on-rails ruby rails-api

我有一个控制器

class Api::V1::InvoicesController < ApplicationController

  def index
    @invoices = Invoice.all

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

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

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

我如何在appication控制器上指定在每个索引操作上添加each_serializer: Api::V1::MODEL_NAMEPreviewController

1 个答案:

答案 0 :(得分:2)

我没有对此进行测试,但我认为它应该是这样的:

# 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

希望有效并且有所帮助!