我正在使用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"}]}
获取所有收集项,边数据等的根密钥的最新方法是什么? (文件对此并不清楚)
修改
方案序列化程序目前如下:
class ScenarioSerializer < ActiveModel::Serializer
attributes :id, :name
end
答案 0 :(得分:1)
试用最新版本。 AMS使用控制器名称作为数组的键。默认情况下,它应该像上面显示的那样呈现。
如果你的控制器没有命名为ScenariosController,你可以像这样强制数组的根元素:
render json: @scenarios, root: "scenarios", status: :ok