Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Add metadata to :attributes serializer (Active Model Serializers)

Is there a way I can add a non-model metadata attribute onto an each_serializer, without using the :json_api adapter?

render json: invoices, each_serializer: Invoices::ItemizedSerializer

I want it to be...

{
  data: [{..invoice 1...}, {...invoice 2...}]
  metadata: {total: 500}
}

instead of

[
  {..invoice 1...},
  {...invoice 2...}
]
like image 577
Tallboy Avatar asked Oct 16 '16 17:10

Tallboy


1 Answers

You can pass a custom adapter on a per controller basis:

render json: invoices, adapter: :json, each_serializer: Invoices::ItemizedSerializer, meta: {grand_total: grand_total}
like image 166
Tallboy Avatar answered Oct 20 '22 07:10

Tallboy