1

我正在使用 active_model_serializers 将集合呈现为 JSON 以供 ember 数据使用。渲染单个项目时一切正常,但集合渲染由项目数组组成。

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 回答