将元数据添加到:attributes serializer(Active Model Serializers)

Tal*_*boy 2 ruby ruby-on-rails active-model-serializers ruby-on-rails-5

有没有办法可以在each_serializer不使用:json_api适配器的情况下将非模型元数据属性添加到其中?

render json: invoices, each_serializer: Invoices::ItemizedSerializer
Run Code Online (Sandbox Code Playgroud)

我希望它是......

{
  data: [{..invoice 1...}, {...invoice 2...}]
  metadata: {total: 500}
}
Run Code Online (Sandbox Code Playgroud)

代替

[
  {..invoice 1...},
  {...invoice 2...}
]
Run Code Online (Sandbox Code Playgroud)

Tal*_*boy 8

您可以基于每个控制器传递自定义适配器:

render json: invoices, adapter: :json, each_serializer: Invoices::ItemizedSerializer, meta: {grand_total: grand_total}
Run Code Online (Sandbox Code Playgroud)