¿Cómo personalizar la representación de la recopilación al usar Active_Model_Serializers?

StackOverflow https://stackoverflow.com//questions/10682143

  •  12-12-2019
  •  | 
  •  

Pregunta

Estoy usando Active_Model_Serializers para prestar una colección como JSON para el consumo de Ember-Data. Todo está bien cuando se representa un solo artículo, pero la representación de la recaudación consiste en una matriz de artículos.

render json: @scenarios, status: :ok

da:

[{"scenario":{"id":4,"name":"My sample scenario"}},{"scenario":{"id":5,"name":"Yet another sample scenario"}}]

pero me gustaría obtener:

{"scenarios": [{"id":4,"name":"My sample scenario"},{"id":5,"name":"Yet another sample scenario"}]}

¿Cuál es la forma del artículo de la técnica de obtener una clave de raíz con todos los artículos de recolección, datos laterales, etc.(La documentación no es tan clara sobre esto)

editar

El Scenario Serializer es actualmente el siguiente:

class ScenarioSerializer < ActiveModel::Serializer
  attributes :id, :name
end

¿Fue útil?

Solución

Prueba la última versión.AMS utiliza el nombre del controlador como la clave para una matriz.De forma predeterminada debe hacer que lo haya mostrado anteriormente.

Si su controlador no se llama Escenarioscontroller, puede forzar el elemento raíz de la matriz así:

render json: @scenarios, root: "scenarios", status: :ok

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top