EmberJS: Unable to read property "typeKey" from undefined

I assume this should be fairly simple, but I have not reached the root of the problem, and I'm still studying Ember-Data.

I have two models with a relationship hasManybetween them:

App.User = DS.Model.extend({

  displayName: DS.attr('string'),
  email: DS.attr('string'),
  firstName: DS.attr('string'),
  lastName: DS.attr('string'),
  location: DS.attr('string'),
  messages: DS.hasMany('message')

});

App.Message = DS.Model.extend({

  user: DS.belongsTo('user'),
  createdAt: DS.attr('date'),
  updatedAt: DS.attr('date'),
  fullText: DS.attr('string'),
  subject: DS.attr('string'),
  recipients: DS.attr('string')

});

Ember data retrieves the user from the server, is output as follows:

{  
   "user":[  
      {  
         "id":"3",
         "firstName":"A",
         "lastName":"User",
         "location":"",
         "email":"a@user.com",
         "displayName":"auser",
         "messages":[  
            {  
               "id":"3",
               "user":"3",
               "createdAt":"2014-08-06 20:08:38",
               "fullText":"Here is some text",
               "recipients":"",
               "subject":"Message subject (may not be needed)",
               "updatedAt":"2014-08-06 20:08:38"
            }
         ]
      }
   ]
}

However, when Ember tries to populate the repository with this answer, I get the following error:

Error while loading route: TypeError: Cannot read property 'typeKey' of undefined
    at Ember.Object.extend.modelFor (http://www.musicicons.dev/assets/packages/ember-data/ember-data.js:10667:22)
    at Ember.Object.extend.recordForId (http://www.musicicons.dev/assets/packages/ember-data/ember-data.js:10112:21)
    at deserializeRecordId (http://www.musicicons.dev/assets/packages/ember-data/ember-data.js:11116:27)
    at deserializeRecordIds (http://www.musicicons.dev/assets/packages/ember-data/ember-data.js:11130:9)
    at http://www.musicicons.dev/assets/packages/ember-data/ember-data.js:11095:11
    at http://www.musicicons.dev/assets/packages/ember-data/ember-data.js:9317:20
    at http://www.musicicons.dev/assets/packages/ember/ember.js:3428:16
    at Object.OrderedSet.forEach (http://www.musicicons.dev/assets/packages/ember/ember.js:3271:10)
    at Object.Map.forEach (http://www.musicicons.dev/assets/packages/ember/ember.js:3426:10)
    at Function.Model.reopenClass.eachRelationship (http://www.musicicons.dev/assets/packages/ember-data/ember-data.js:9316:42)

If you delete or rename relations hasManyfrom my model User, the error will disappear, so for some reason I think my JSON is not built correctly.

+4
source share
3 answers

Update

Ember Data : Ember- ?

Ember Data , json ( id 3):

{  
   "user":
   {  
      "id":"3",
      "firstName":"A",
      "lastName":"User",
      "location":"",
      "email":"a@user.com",
      "displayName":"auser",
      "messages": [3]
    },
    "messages":[  
     {  
       "id":"3",
       "user":"3",
       "createdAt":"2014-08-06 20:08:38",
       "fullText":"Here is some text",
       "recipients":"",
       "subject":"Message subject (may not be needed)",
       "updatedAt":"2014-08-06 20:08:38"
     }
    ]  
}

: http://emberjs.jsbin.com/OxIDiVU/918/edit

: Ember- ?

+6

Ember Data , , , , Ember Data JSON . , :

App.UserSerializer = DS.RESTSerializer.extend(DS.EmbeddedRecordsMixin, {
  attrs: {
    messages: {embedded: 'always'}
  }
});

, , Ember Data, "" .

ActiveModelSerializer, :

App.UserSerializer = DS.ActiveModelSerializer.extend(DS.EmbeddedRecordsMixin, {
  attrs: {
    messages: {embedded: 'always'}
  }
});
+6

, - , google errormassage:

, :

App.Project = DS.Model.extend({
    customers: DS.belongsTo('customer')  
});

, belongsTo, hasMany

+2

All Articles