Active Model Serializer未呈现要收集的根密钥-版本0.10.6

问题描述 投票:2回答:1

我正在使用'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"
    }
  }
]

我在这里做错了什么?

ruby-on-rails ruby ruby-on-rails-5 active-model-serializers
1个回答
2
投票

AMS最难的部分是找到正确的文档。根据您提到的版本,以下是文档链接:https://github.com/rails-api/active_model_serializers/tree/0-10-stable/docs

有3个适配器:

  1. :default(不会有任何根,即使添加了root键也基本上没有用)
  2. :json(这是您需要的,您可以添加自定义root键。https://github.com/rails-api/active_model_serializers/blob/0-10-stable/docs/general/adapters.md#example-output-1
  3. :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
© www.soinside.com 2019 - 2024. All rights reserved.