Skip to content

multiple requests hasMany relationship #71

@ghost

Description

I simplified code to show relevant issue.

Ember data models:

var page = DS.Model.extend({
    categories: DS.hasMany('category', {async: true}),
});

var category= DS.Model.extend({
    page: DS.belongsTo('page', {async: true})
});

In Parse I have relevant columns:

I have page pointer type from category -> page
I have categories array of category objectId's on each page.

When I have instance of page and try this method:

page.get('categories')

or call (in template to iterate):

page.categories

Parse data adapter makes individual GET requests for each categories.
ie: say for example Page has categories array set as ["dyutrdf23", "44fdfdf"]
will make two requests to get the categories.

I modified model hook on Categories route to make one request to fetch all page categories:

    var page = this.modelFor('page');
    return this.store.find('category', {
        where: {
            page: {
            "__type":  "Pointer",
            "className": "Page",
            "objectId": page.get('id')
            }
        }
    });

This works, I used it from https://github.com/clintjhill/ember-parse-adapter/blob/master/addon/adapters/application.js#L130.

However, I don't understand why this method (findHasMany) is not being called (for one request with query as opposed to individual requests) when I make the page.get('categories').

Maybe I've overlooked something with Ember data/Ember parse adapter here.

Any feedback appreciated. Thank you.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions