¿Cómo personalizar la representación de la recopilación al usar Active_Model_Serializers?
-
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
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