jsonapi 和 active_mode_serializers 如何获取响应中的关系属性?

Alp*_*pha 2 ruby-on-rails active-model-serializers json-api

技术背景:rails 4.2.2,active_model_serializers 0.10.0.rc2 给定一个购物车和一个产品列表,当我将产品添加到购物车时,我希望得到响应:

{
"data": {
  "id": "575",
  "type": "carts",
  "attributes": {
    "name": "cart 1"
  },
  "relationships": {
    "cart_products": {
      "data": [
        {
          "type": "cart_products",
          "id": "32",
          "attributes": {
            "product_id": 456
          }
        }
      ]
    }
  }
}
}
Run Code Online (Sandbox Code Playgroud)

不幸的是,目前的回应是

{
"data": {
"id": "575",
"type": "carts",
"attributes": {
  "name": "cart 1"
},
"relationships": {
  "cart_products": {
    "data": [
      {
        "type": "cart_products",
        "id": "32",

      }
    ]
  }
}
Run Code Online (Sandbox Code Playgroud)

} }

有没有办法渲染关系属性?

小智 5

JSON:API 规范解释了关系数据应该如何。您所要求的实际上是嵌套的,或者更好的是根据规范“包含”。

我建议您阅读一下http://jsonapi.org/format/#document-compound-documents,了解有关包含/嵌套关系的规范的更多详细信息

另外,关于您的问题,您需要告诉序列化器渲染包含的元素,如下所示:render @posts, include: ['authors', 'comments'] 请参阅此处以获取更多信息:https ://github.com/rails-api/active_model_serializers