when primary_key is changed on resource level id mismatch between relatioship linkage and included data.
Reproduced in bug report template according to PR #980 proposal
Models
class Storage < ActiveRecord::Base
has_one :keeper, class_name: 'Keeper', as: :keepable
end
class Keeper < ActiveRecord::Base
belongs_to :keepable, polymorphic: true
end
resources
class StorageResource < JSONAPI::Resource
model_name 'Storage'
key_type :string
primary_key :token
attribute :name
end
class KeeperResource < JSONAPI::Resource
model_name 'Keeper'
has_one :keepable, polymorphic: true
attribute :name
end
class KeepableResource < JSONAPI::Resource
end
Data
storage = Storage.create! name: 'Warehouse 1', token: 'some-token'
Keeper.create! name: 'John Doe', keepable: storage
Response
{
"data": {
"id": "1",
"type": "keepers",
"links": {
"self": "http://example.org/keepers/1"
},
"attributes": {
"name": "John Doe"
},
"relationships": {
"keepable": {
"links": {
"self": "http://example.org/keepers/1/relationships/keepable",
"related": "http://example.org/keepers/1/keepable"
},
"data": {
"type": "storages",
"id": "1"
}
}
}
},
"included": [
{
"id": "some-token",
"type": "storages",
"links": {
"self": "http://example.org/storages/some-token"
},
"attributes": {
"name": "Warehouse 1"
}
}
]
}
as you see included data for storages has "id: "some-token", but keepable relationship linkage has "id": "1"
when primary_key is changed on resource level id mismatch between relatioship linkage and included data.
Reproduced in bug report template according to PR #980 proposal
Models
resources
Data
Response
as you see included data for storages has
"id: "some-token", butkeepablerelationship linkage has"id": "1"