2016-04-02 26 views
0

Bazı kullanıcılara sistemimizden gelen bilgileri gösteren, raylarla basit bir yerleştirme yapmaya çalıştım.Kullanıcıları neden kullanmıyorsunuz?

Benim rota:/API/kullanıcıların döner bu json:

{"users":[{"id":1,"username":"Evolutio","email":"[email protected]"}]} 

Benim emberadapter:

import DS from 'ember-data'; 
export default DS.RESTAdapter.extend({ 
    host: 'https://api.domain.tld', 
    namespace: 'api', 
    headers: { 
     //"API_KEY": "secret key", 
    } 
}); 

Kullanıcılarımın/model.js

import DS from 'ember-data'; 

export default DS.Model.extend({ 
    username: DS.attr('string'), 
    email: DS.attr('string') 
}); 

Kullanıcılarımın/index/route.js

import Ember from 'ember'; 

export default Ember.Route.extend({ 
    model() { 
     let users = this.store.findAll("users"); 
     return users; 
    } 
}); 
localhost: 4200/kullanıcıların

Ben bu hatayı alıyorum kullanıcı/model.js silmek

: enter image description here

: kor müfettiş ile

WARNING: Encountered "users" in payload, but no model was found for model name "user" (resolved model name using [email protected]:application:.modelNameFromPayloadKey("users")) 

ve verileri

Ben bu URL'yi ziyaret edin kullanıcılardan

benim endeksi şablonu: my scnd sorun olduğunu,

<ul> 
{{#each model as |user|}} 
    <li> 
     {{#link-to 'users.show' user}} 
      {{user.username}} {{user.roles}} 
     {{/link-to}} 
    </li> 
{{/each}} 
</ul> 

olduğunu

Herhangi bir ilişki kuramıyorum. benim api döner şimdi bu:

{"users":[{"id":1,"username":"Evolutio","email":"[email protected]","roles":[{"id":5,"name":"admin","alias":"Administrator"}]}]} 

benim kullanıcı/model.js:

Error while processing route: users.index Assertion Failed: Passing classes to store methods has been removed. Please pass a dasherized string instead of undefined 

Ben bu konuda onu çözdüm: şimdi

import DS from 'ember-data'; 

export default DS.Model.extend({ 
    username: DS.attr('string'), 
    email: DS.attr('string'), 

    roles: DS.hasMany('role'), 
}); 

ve bu hata var benim user_serializer.rb:

ve benim kullanıcı/model.js:

import DS from 'ember-data'; 

export default DS.Model.extend({ 
    username: DS.attr('string'), 
    email: DS.attr('string'), 
    display_role: DS.attr('string') 
}); 

cevap

1

Gerçekten de, değiştirmek ne bir şey Modelinizin dosya adıdır etmedi. Pod sözdizimini kullanmayı tercih ederseniz, users/model.js'u user/model.js'a taşıyın veya app/model/user.js'u kaydedebilirsiniz.

Model her zaman tekildir. Dosya adı tekildir.

Güncelleme app/index/route.js:

sadece seni sözleşmeler hakkında daha fazla bilgi edinebilirsiniz bir blog yazısı var ember.js öğrenmeye başladıysanız
import Ember from 'ember'; 

export default Ember.Route.extend({ 
    model() { 
     return this.store.findAll("user"); 
    } 
}); 

: Ember.js tutorial

+0

sayesinde, inşaat büyük! – Evolutio

+0

belki benim ikinci problemime bakabilirsin. Ana sayfanıza bağlı olarak uygulamanızı üs olarak kullandım. Ama hiç bir hata alamıyorum. – Evolutio

+0

Yani '' isim' ve 'alias' alanı ile bir' uygulama/model/role.js' zaten var, artı 'kullanıcı: belongsTo ('kullanıcı')'? – Zoltan