Pergunta

Eu estou usando active_model_serializers para compor uma coleção como JSON para ember-consumo de dados.Está tudo ok quando o processamento de um único item, mas a recolha de renderização constituída como uma matriz de itens.

render json: @scenarios, status: :ok

dá:

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

mas eu gostaria de obter:

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

Qual é o estado da arte de forma a obter uma chave de raiz com todos os itens de coleção, lado a dados, e assim por diante?(a documentação não é clara sobre isso)

EDITAR

O cenário serializador, atualmente, como a seguir:

class ScenarioSerializer < ActiveModel::Serializer
  attributes :id, :name
end
Foi útil?

Solução

Tente a versão mais recente.AMS usa o nome do controlador de como a chave para uma matriz.Por padrão, ele deve render como você mostrou acima.

Se o seu controlador não é chamado ScenariosController, você pode forçar o elemento raiz da matriz como esta:

render json: @scenarios, root: "scenarios", status: :ok
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top