Добавление метаданных в: сериализатор атрибутов (активные сериализаторы моделей)

#ruby-on-rails #ruby #ruby-on-rails-5 #active-model-serializers

#ruby-on-rails #ruby #ruby-on-rails-5 #active-model-serializers

Вопрос:

Есть ли способ добавить атрибут метаданных, не относящийся к модели, в an each_serializer , без использования :json_api адаптера?

 render json: invoices, each_serializer: Invoices::ItemizedSerializer
 

Я хочу, чтобы это было…

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

вместо

 [
  {..invoice 1...},
  {...invoice 2...}
]
 

Ответ №1:

Вы можете передавать пользовательский адаптер для каждого контроллера:

 render json: invoices, adapter: :json, each_serializer: Invoices::ItemizedSerializer, meta: {grand_total: grand_total}