active_model_serializers icon indicating copy to clipboard operation
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

Open kannans5 opened this issue 4 years ago • 3 comments

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 avatar Sep 24 '20 06:09 kannans5

@kannans5 I face the same problem. Did you find a solution?

Nerian avatar May 13 '21 14:05 Nerian

any news or workarounds for this? facing a similar issue.

pjsanjuan avatar Nov 21 '22 23:11 pjsanjuan

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

bf4 avatar Nov 22 '22 08:11 bf4