active_model_serializers
active_model_serializers copied to clipboard
Upgrade AMS from 0.9 to 0.10 and using Ember Active Model Adapter facing problems in side loading
I assume this has been discussed several times already, just want to understand whether sideloading is possible with json adapter or works only with json_api adapter?
Current, I have the config as
ActiveModelSerializers.config.tap do |config|
config.embed = :ids
config.embed_in_root = true
end
and after the upgrade, I have changed it to
ActiveModelSerializers.config.adapter = :json
ActiveModelSerializers.config.default_includes = "**" # to include nested resources
Example:
Taking the reference from here
https://api.emberjs.com/ember-data/1.13/classes/DS.ActiveModelAdapter This Adapter expects specific settings using ActiveModel::Serializers, embed :ids, embed_in_root: true which sideloads the records.
Earlier if I have has_many relationship defined in the serializer, I would get the occupations side loaded.
{
"people": [{
"id": 1,
"first_name": "John",
"last_name": "Doe",
"occupation_ids": [1]
}],
"occupations": [{
"id": 1,
"name": "developer"
}]
}
Now I am getting the response like this
{
"people": [{
"id": 1,
"first_name": "John",
"last_name": "Doe",
"occupations": [{
"id": 1,
"name": "developer"
}]
}]
}
I have read from the other posts, that I could get the occupation_ids using this in the PeopleSerializer
def occupation_ids
object.occupations.pluck(:id)
end
But how do I sideload the associations, rather than nesting inside the people?
@kannans5 I face the same problem. Did you find a solution?
any news or workarounds for this? facing a similar issue.
I know someone made an upgrade guide somewhere in the repo or in an issurme but in general I think people found 8, 9, and 10 pretty hard to switch .
That particular ember adapter iirc is pretty ancient at this point