我正在使用'active_model_serializers', '~> 0.10.6'
呈现我的API响应。对于我的index
操作,我正在执行此操作-
render json: @items, root: 'data', each_serializer: ItemsSerializer
但是在我的答复中,我没有得到root key
-data
[
{
"id": 85,
"title": "B",
"source": "manager_added",
"shared": true,
"status": "suggested",
"item_type": "action_item",
"manager": {
"id": 2614,
"full_name": "Calvin H",
"first_name": "Calvin"
},
"reportee": {
"id": 2614,
"full_name": "Calvin H",
"first_name": "Calvin"
}
},
{
"id": 87,
"title": "D",
"source": "manager_added",
"shared": true,
"status": "suggested",
"item_type": "action_item",
"manager": {
"id": 2614,
"full_name": "Calvin H",
"first_name": "Calvin"
},
"reportee": {
"id": 2614,
"full_name": "Calvin H",
"first_name": "Calvin"
}
}
]
我在这里做错了什么?
AMS最难的部分是找到正确的文档。根据您提到的版本,以下是文档链接:https://github.com/rails-api/active_model_serializers/tree/0-10-stable/docs
有3个适配器:
:default
(不会有任何根,即使添加了root
键也基本上没有用):json
(这是您需要的,您可以添加自定义root
键。https://github.com/rails-api/active_model_serializers/blob/0-10-stable/docs/general/adapters.md#example-output-1):json_api
(默认的root
键将为data
,但是您可以自定义,也许可以使用它,但是它会将响应json的整个结构更改为类似以下内容:[https://github.com/rails-api/active_model_serializers/blob/0-10-stable/docs/general/adapters.md#example-output-2)]答案:
render json: @items, root: 'data', adapter: :json, each_serializer: ItemsSerializer
或
render json: @items, adapter: :json, each_serializer: ItemsSerializer