Call save on relation from within a record


What I’m trying to do is call save on a belongsTo relation from within a record. Let’s say I have a person with a name relation. I’ve added the next method to person model:

extendedSave() {

  // Check for name to save.
  if (this.get('name.hasDirtyAttributes')) { // true
    console.log(this.get('name').save); // undefined
    this.get('name').save(); // error; // doesn't work either

  // Check for phone numbers to save.
  this.get('phoneNumbers').forEach(function(phoneNumber) {
    if (phoneNumber.get('hasDirtyAttributes')) {; // work like a charm

As you can see, looping through a hasMany relation (phoneNumbers) and calling save on any of them causes no problem. But apparently there’s no save method on the belongsTo relation.

What am I doing wrong here?


Found it. Apparently this.get('name') returns a promise. So this works:

this.get('name').then(function(name) {;