Skip to content

Upgrade AMS from 0.9 to 0.10 and using Ember Active Model Adapter facing problems in side loading #2394

Open
@kannans5

Description

@kannans5

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?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions