Active_Model_Serializersを使用するときのコレクションレンダリングをカスタマイズする方法

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

  •  12-12-2019
  •  | 
  •  

質問

Active_Model_Serializersを使用して、Ember-Data Cussionの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"}]}
.

すべてのコレクションアイテム、サイドデータなどでルートキーを入手する最先端の方法は何ですか?(この文書はこれについて明確ではありません)

編集

シナリオシリアライザは現在次のとおりです。

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

役に立ちましたか?

解決

最新版を試してください。AMSは、コントローラ名を配列のキーとして使用します。デフォルトでは、上記のようにレンダリングする必要があります。

コントローラがシナリオスコンローラーという名前の場合は、次のような配列のルート要素を強制することができます。

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top