反序列化关系JSON API ActiveModelSerializer

时间:2017-12-13 00:26:31

标签: ruby-on-rails active-model-serializers

我使用的是ActiveModelSerializers 0.10.2。 - 当我对我的params进行反序列化时,我无法让我的关系显示出来。我有一个带有效负载的POST请求:

{
  "data": {
    "type": "project_toolbox_talks",
    "attributes": {
      "date": "2017-12-11"
    }
  },
  "relationships": {
    "attendees": {
      "data": [
        {
          "type": "atendees",
          "id": "559ff2c9-beb6-47cd-9757-66104617403b"
        }
      ]
    },
    "projects": {
      "data": {
        "type": "projects",
        "id": "d9b28ffd-6f30-4dd0-a227-720caa9b881e"
      }
    }
  }
}

我的ProjectToolboxTalks的Serializer是:

module API
  module V1
    class ProjectToolboxTalkSerializer < ActiveModel::Serializer
      attributes :date

      has_one :toolbox_talk
      has_one :superintendent
      has_one :project
      has_many :attendees
      has_many :project_toolbox_talk_users
    end
  end
end

我打电话给我的控制器:

ActiveModelSerializers::Deserialization.jsonapi_parse!(
  params, only: [:date, :attendees, :projects]
)

唯一返回的是{:date=>"2017-12-11"}

为什么我的attendeesprojects关系没有被退回?

ActiveModelSerializers 0.10.2 + Rails 5.1.2 + Ruby 2.4.2

1 个答案:

答案 0 :(得分:2)

关键'关系'需要在第一个'数据'中。