@pierred69 wrote:
Hi,
I write to ask you why can't I get my relational datas in my object.
I explain :
I created two model objects : a user and an institution. The relationship between both is Many To Many.
On the server (actually an embedded stub on /server before switching to a rails server currently in development), the relationship is the same. My server sends datas respecting the JSON API convention. By the way, the Adapter I use in the app extends JSONAPIAdapter.
All datas are correctly filled in : I can fill my user model properly when I call datas through the "find" method from the store in the service, everything's ok :
this.get('store').find('user', id);
The user is well returned and I can check out my datas in the app.
But the user also owns an array of "institutions" and this one looks empty. I can't parse it, and user.institutions.length returns "0". However, when I check out the Ember Inspector, I can see the institution in "datas", so the request seems to be functional...
I set async : true on the model.
Here are extracts of code :
Model user -->
export default DS.Model.extend({ name: DS.attr('string'), surname: DS.attr('string'), email: DS.attr('string'), photo: DS.attr('string'), institutions: DS.hasMany('institution', {async: true}), fullName: Ember.computed("surname", "name", function fullName(){ return this.get('surname') + " " + this.get('name'); }), avatar: Ember.computed("photo", function avatar(){ return "/images/avatars/" + this.get('photo'); }) });
Institutions :
export default DS.Model.extend({ "shortname": DS.attr('string'), "photo": DS.attr('string'), "address": DS.attr('string'), "zipcode": DS.attr('string'), "city": DS.attr('string'), "type": DS.attr('string'), "dataset": DS.attr('string'), "website": DS.attr('string'), "phone" : DS.attr('string'), "rectorat": DS.attr('string'), "users": DS.hasMany('user', {async: true}), picture: Ember.computed("photo", function picture(){ return "images/institutions/" + this.get('photo'); }) });
And the JSON API returned by the server :
{ "links": { "self": "users/" }, "data": { "type": "user", "id": 1, "attributes": { "user_id": 1, "name": "User", "surname": "Beta", "email": "test@unowhy.com", "photo": "user.jpg", "institutions": [ 2 ] }, "links": { "self": "users//1" }, "relationships": { "institutions": [ { "links": { "self": "institutions/2" }, "data": { "type": "institutions", "id": 2, "attributes": { "institution_id": 2, "shortname": "Standford Maternelle", "photo": "mrclpgnl.jpeg", "address": "12 rue Riquet", "zipcode": "75019", "city": "Paris", "type": "Lycée", "dataset": "xjdfhdjhkfshfdsjkhfdskjhf", "website": "http://standford.com", "phone": "0478585527", "rectorat": "666881548451354564", "users": [ 1 ] } } } ] } }, "included": [ { "type": "institutions", "id": 2, "attributes": { "institution_id": 2, "shortname": "Standford Maternelle", "photo": "mrclpgnl.jpeg", "address": "12 rue Riquet", "zipcode": "75019", "city": "Paris", "type": "Lycée", "dataset": "xjdfhdjhkfshfdsjkhfdskjhf", "website": "http://standford.com", "phone": "0478585527", "rectorat": "666881548451354564", "users": [ 1 ] }, "links": { "self": "institutions/2" } } ] }
Do you have an idea about why don't I have a relationship properly and what do I have to do to have something like this :
{{#each user.institutions as |institution|}} {{institution.shortname}} {{/each}}
Thanks a lot !!
Posts: 1
Participants: 1