-
Notifications
You must be signed in to change notification settings - Fork 64
Open
Description
Working through implementing includes I have discovered what appears to be a bug. All my other code like this works as expected and the only difference I can find is that the association is the same class as the requested object.
Controller
users = User.includes(:managers, :direct_reports).page(params[:page]).per(params[:per_page])
render jsonapi: users,
include: ['managers', 'direct_reports'],
links: pagination_links(users, User)
Serializer
class SerializableUser < JSONAPI::Serializable::Resource
type 'users'
belongs_to :role
belongs_to :parent
has_many :managers, class_name: 'User'
has_many :direct_reports, class_name: 'User'
end
The response looks nearly correct, except the includes are missing at the end. I have provided a sample below.
{
"data": [
{
"id": "1",
"type": "users",
"attributes": {
"name": "Meghan Wilkinson",
"email": "mauricio@lang.com",
"threshold": null
},
"relationships": {
"direct_reports": {
"links": {
"self": "http://localhost:3000/v1/users/1/relationships/direct_reports",
"related": "http://localhost:3000/v1/users"
},
"data": []
},
"managers": {
"links": {
"self": "http://localhost:3000/v1/users/1/relationships/managers",
"related": "http://localhost:3000/v1/users"
},
"data": []
}
}
},
{
"id": "2",
"type": "users",
"attributes": {
"name": "Dora Nitzsche",
"email": "albin.legros@waters.io",
"threshold": null
},
"relationships": {
"parent": {
"meta": {
"included": false
}
},
"role": {
"meta": {
"included": false
}
},
"direct_reports": {
"links": {
"self": "http://localhost:3000/v1/users/2/relationships/direct_reports",
"related": "http://localhost:3000/v1/users"
},
"data": [
{
"type": "users",
"id": "5"
}
]
},
"managers": {
"links": {
"self": "http://localhost:3000/v1/users/2/relationships/managers",
"related": "http://localhost:3000/v1/users"
},
"data": [
{
"type": "users",
"id": "4"
}
]
}
}
}
],
"links": {
"self": "http://localhost/v1/users?page=1&per_page=50",
"first": "http://localhost/v1/users?page=1&per_page=50",
"prev": null,
"next": null,
"last": "http://localhost/v1/users?page=1&per_page=50"
},
"jsonapi": {
"version": "1.0"
}
}
Metadata
Metadata
Assignees
Labels
No labels