mercredi 11 novembre 2015

Ember-Data Embedded records retriving

I have been confused about Ember-Data Embedded records past few days any help or explanation would be appriciated i have two models

user.js

export default DS.Model.extend({


docType:DS.attr('string'),
firstName:DS.attr('string'),
role:DS.attr('string'),


userName:DS.attr('string'),
password:DS.attr('string'),

lastName:DS.attr('string'),
mobileNo:DS.attr('string'),
landNo:DS.attr('string'),

nicNo:DS.attr('string'),
permissionList:DS.hasMany('userpermission',{embedded:'always'})


}); 

and

userPermission.js

export default DS.Model.extend({


permissionName:DS.attr('string'),
permissionId:DS.attr('string'),
view:DS.attr('boolean',{defaultValue: true}),
create:DS.attr('boolean',{defaultValue: true}),
update:DS.attr('boolean',{defaultValue: true}),
deleteRec:DS.attr('boolean',{defaultValue: true})


});

application Serializer

export default DS.RESTSerializer.extend({
primaryKey: '_id',


});

post serializer

import DS from 'ember-data';

export default DS.RESTSerializer.extend(DS.EmbeddedRecordsMixin, {
attrs: {
permissionList: { serialize: 'ids', deserialize:     'ids',embedded:'always' },

}
});

and in my controller i use

var permission = this.store.createRecord('userpermission');
this.user.get('userPermissions').pushObject(permission);

to push permissions to user and

this.user.save()

to save the user

i can successfully save a user. and it is saved in following format

{"user":[{"_id":"563b4287ed5e33e3149e9415","created_at":"2015-11-05T11:50:31.146Z","docType":null,"firstName":"Sameera","role":null,"userName":"sam","password":"1234","lastName":"Wickramasekara","mobileNo":"1212","landNo":"121","nicNo":"12121","__v":0,"permissionList":[{"permissionName":"permission1","permissionId":"1","view":true,"create":false,"update":false,"deleteRec":false},{"permissionName":"permission3","permissionId":"3","view":true,"create":false,"update":true,"deleteRec":false}]}

the problem arises when i try to get users to the Ember application following error occurs

Error while processing route: userlist.main Assertion Failed: You must include an `id` for userpermission in an object passed to `push` Error: Assertion Failed: You must include an `id` for userpermission in an object passed to `push`
at new Error (native)
at Error.EmberError (http://localhost:4200/assets/vendor.js:26452:21)
at Object._emberMetalCore.default.assert (http://localhost:4200/assets/vendor.js:15896:13)
at ember$data$lib$system$store$$Service.extend.push (http://localhost:4200/assets/vendor.js:83099:17)
at http://localhost:4200/assets/vendor.js:85377:17
at Array.forEach (native)
at Ember.Mixin.create._extractEmbeddedHasMany (http://localhost:4200/assets/vendor.js:85375:68)
at null.<anonymous> (http://localhost:4200/assets/vendor.js:85340:22)
at http://localhost:4200/assets/vendor.js:86410:20
at cb (http://localhost:4200/assets/vendor.js:28210:11)

FYI i use node as backend and mongo as the database;

all i want to do is save and retrive user recorords with permissions as embedded where am i going wrong? can you point to any resource about correctly using Ember-data that has embedded records without ids. please mind any mistake because im not experienced javascript programmer. thanks.

Aucun commentaire:

Enregistrer un commentaire