【问题标题】:jsonapi-rb probleams with Relationsshipjsonapi-rb 关系问题
【发布时间】:2017-11-03 15:56:13
【问题描述】:

我的 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
      }
    }
  }
}

【问题讨论】:

  • 你确定只有has_one :card不够吗?

标签: ruby-on-rails jsonapi-serialize


【解决方案1】:

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

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

您也可以在渲染 JSON 时包含它。

render jsonapi: customer, include: [:cards]

【讨论】:

    猜你喜欢
    • 2018-01-17
    • 2021-04-29
    • 2017-02-14
    • 1970-01-01
    • 2018-11-07
    • 2015-11-30
    • 2018-12-17
    • 2016-01-07
    • 1970-01-01
    相关资源
    最近更新 更多