Active_Model_Serializers를 사용할 때 수집 렌더링을 사용자 정의하는 방법은 무엇입니까?

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

  •  12-12-2019
  •  | 
  •  

문제

active_model_serializers를 사용하여 ember-data 소비를 위해 json으로 컬렉션을 렌더링합니다. 모두 단일 항목을 렌더링 할 때 모두 괜찮지 만 콜렉션 렌더링은 항목 배열로 구성됩니다.

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는 컨트롤러 이름을 배열의 키로 사용합니다.기본적으로 위에 표시된 것처럼 렌더링해야합니다.

컨트롤러가 ScenaryosController라는 이름이 아닌 경우 다음과 같이 배열의 루트 요소를 강제로 강제로 할 수 있습니다.

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

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top