1

active_model_serializersを使用して、残り火データを消費するためにコレクションを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
4

1 に答える 1

1

最新バージョンをお試しください。AMSは、コントローラー名をアレイのキーとして使用します。デフォルトでは、上記のようにレンダリングされます。

コントローラの名前がScenariosControllerでない場合は、次のように配列のルート要素を強制できます。

render json: @scenarios, root: "scenarios", status: :ok
于 2012-07-16T04:31:37.203 に答える