gau*_*tam 6 ruby ruby-on-rails active-model-serializers ruby-on-rails-5
我用来'active_model_serializers', '~> 0.10.6'渲染我的 API 响应。为了我的index行动,我正在这样做 -
render json: @items, root: 'data', each_serializer: ItemsSerializer
Run Code Online (Sandbox Code Playgroud)
但在我的回复中,我没有得到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"
}
}
]
Run Code Online (Sandbox Code Playgroud)
我在这里做错了什么?
AMS 最困难的部分是找到正确的文档。根据您提到的版本,这里是文档链接: https://github.com/rails-api/active_model_serializers/tree/0-10-stable/docs
有 3 个适配器:
:default(不会有root,基本上rootkey就算加了也没用):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
Run Code Online (Sandbox Code Playgroud)
或者
render json: @items, adapter: :json, each_serializer: ItemsSerializer
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2758 次 |
| 最近记录: |