Search code examples
node.jsember.jsember-dataember-cli

Ember hasMany Relationship not persisting


I recently got into ember.js development and I'm facing a problem. I've two models user.js and userpermissions.js

// user
export default DS.Model.extend({
   userName:DS.attr('string'),
   lastName:DS.attr('string'),
   permissionList:DS.hasMany('userpermission',{async:true}),
}); 

// userpermissions
export default DS.Model.extend({
  user:DS.belongsTo('user'),
  permissionName:DS.attr('string'),
  permissionId:DS.attr('string'),  
});

I'm trying to set permissions for a user record.

export default Ember.Controller.extend({

     selectedPermission: {},
     newUser: {},
     init: function() {
        this.newUser = this.store.createRecord('user');
     },

     addPermission: function() {
        var permission = this.store.createRecord('userpermission');
        permission.set('permissionId', this.get('selectedPermission.id'));
        this.get('newUser').get('permissionList').pushObject(permission);
     }
});

Finally save is called for new user.

this.get('newuser').save();

To persist data to my nodejs back-end. All the userpermissions are recorded as null. I've tried to search for a solution but couldn't find one. Could anyone point me what i am doing wrong, or what is the solution thank you!


Solution

  • i resolved this by adding user Serializer and EmbeddedRecordsMixin

    import DS from 'ember-data';
    
    export default DS.RESTSerializer.extend(DS.EmbeddedRecordsMixin, {
    attrs: {
    permissionList: { embedded: 'always' },
    
    }
    });