jsonapi-rb带有Relationsship的问题

时间:2017-11-03 15:56:13

标签: ruby-on-rails jsonapi-serialize

我有一个gem jsonapi-rb的问题,我尝试使用序列化中的关系,但它确实有效。

模型

class Customer < ApplicationRecord
  has_one :card
end

class Card < ApplicationRecord
  belongs_to :customer
end

可序列化

class SerializableCustomer < JSONAPI::Serializable::Resource
  type :customer
  attributes :id

  has_one :card do
    data do
      @object.card
    end
  end
end


class SerializableCard < JSONAPI::Serializable::Resource
  type :card
  attributes :id, :stripe_id, :exp_month

  belongs_to :customer do
    data do
      @object.customer
    end
  end
end

客户已经有一张卡但是当我试图得到回应时,只有客户关系,我没有得到有关卡的数据

SerializableCustomer.new(object: customer)

响应

{
  "id": "1",
  "type": "customer",
  "attributes": {
    "id": "1",
  },
  "relationships": {
    "card": {
      "meta": {
        "included": false
      }
    }
  }
}

1 个答案:

答案 0 :(得分:0)

包含卡片关系的数据。您需要在初始化中包含它。默认情况下,当您包含关系时,它只会序列化关系的链接数据。

SerializableCustomer.new(object: customer, include: [:cards])

您还可以在渲染JSON时包含此内容。

render jsonapi: customer, include: [:cards]