我有一个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
}
}
}
}
答案 0 :(得分:0)
包含卡片关系的数据。您需要在初始化中包含它。默认情况下,当您包含关系时,它只会序列化关系的链接数据。
SerializableCustomer.new(object: customer, include: [:cards])
您还可以在渲染JSON时包含此内容。
render jsonapi: customer, include: [:cards]