Как настроить рендеринг сбора при использовании Active_Model_Serializers?

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

  •  12-12-2019
  •  | 
  •  

Вопрос

Я использую Active_Model_Serializers, чтобы сделать коллекцию, как JSON для потребления Ember-Data. Все в порядке при рендеринге одного элемента, но рендеринг коллекции состоит в качестве массива элементов.

render json: @scenarios, status: :ok
.

дает:

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

Но я хотел бы получить:

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

Какое состояние искусства способом получить корневой ключ со всеми предметами коллекции, боковые данные и так далее?(Документация не совсем понятно об этом)

Редактировать

Сценарий Serializer в настоящее время как следует следующую:

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

Это было полезно?

Решение

Попробуйте последнюю версию.AMS использует имя контроллера в качестве ключа для массива.По умолчанию он должен отображаться, как вы указали выше.

Если ваш контроллер не названа сценариосконтроллером, вы можете заставить корневой элемент массива, как это:

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top