Comment personnaliser le rendu de collecte lorsque vous utilisez Active_Model_Serializers?

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

  •  12-12-2019
  •  | 
  •  

Question

J'utilise Active_Model_Serializers pour rendre une collection en tant que JSON pour la consommation de données Ember. Tout va bien lorsque vous rendant un seul élément, mais le rendu de collecte consiste comme une matrimonie d'articles.

render json: @scenarios, status: :ok

donne:

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

mais je voudrais obtenir:

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

Quel est l'état de la manière d'obtenir une clé racine avec tous les articles de collecte, les données latérales, etc.?(La documentation n'est pas si claire à ce sujet)

Modifier

Le Scénario Serializer est actuellement suivant:

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

Était-ce utile?

La solution

Essayez la dernière version.AMS utilise le nom du contrôleur comme clé d'un tableau.Par défaut, il devrait rendu comme si vous avez montré ci-dessus.

Si votre contrôleur n'est pas nommé scénarioscontroller, vous pouvez forcer l'élément racine de la matrice comme celui-ci:

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top