Sideload a lists "belongsTo" objects with EmberData

ember-data, ember.js

Solution

Ok, the documentaion is very unclear about the fact that when you have a `belongsTo` relationship the key for the sideload must be singular not plural even if its a list. So the JSON has to look like this:

{
  products: [
    {
      id: "1",
      page_title: "Product 1",
      user_id: "1",
      shop_id: "1",
    },
    {
      id: "2",
      page_title: "Product 2",
      user_id: "2",
      shop_id: "1",
    }
  ],
  user: [
    {
      id: "1",
      name: "User 1"
    },
    {
      id: "2",
      name: "User 2"
    }
  ],
  shop: [
    {
      id: "1",
      name: "Shop 1"
    }
  ]
}

Problem

I have 3 emberData models: ``` App.Product = DS.Model.extend({ page_title: DS.attr('string'), shop: DS.belongsTo('App.Shop'), user: DS.belongsTo('App.User') }); App.Shop = DS.Model.extend({ name: DS.attr('string'), }); App.User = DS.Model.extend({ name: DS.attr('string') }); ``` and the JSON data looks like this: ``` { products: [ { id: "1", page_title: "Product 1", user_id: "1", shop_id: "1", }, { id: "2", page_title: "Product 2", user_id: "2", shop_id: "1", } ], users: [ { id: "1", name: "User 1" }, { id: "2", name: "User 2" } ], shops: [ { id: "1", name: "Shop 1" } ] } ``` But when I load the data I got the following error: ``` Assertion failed: Your server returned a hash with the key shops but you have no mapping for it ```

Original source