2012-10-01 37 views
1

我在做與Ember數據我第一次的hasMany關係,並擊中總是充滿樂趣什麼JSON結構應該是負載數據「findMany」不得不正確地sideload?

"Uncaught Error: assertion failed: Your server returned a hash with the key 0 but you have no mappings"

這通常意味着我沒有JSON結構,我所謂的「餘燼」友好的格式。

我使用django rest框架構建了我自己的django REST適配器,所以我很好奇這應該是什麼樣子,以避免錯誤。

目前回來的JSON看起來像下面的(顯然不繫領帶回到它的會話,但也許燼已經知道了如何把這個嗎?)

[{"id": 2, "name": "FooBar"}]

的模型看起來像這樣

CodeCamp.Session = DS.Model.extend({ 
    id: DS.attr('number'), 
    name: DS.attr('string'), 
    room: DS.attr('string'), 
    desc: DS.attr('string') 
});     

CodeCamp.Speaker = DS.Model.extend({ 
    id: DS.attr('number'), 
    name: DS.attr('string'), 
    session: DS.belongsTo('CodeCamp.Session') 
}); 

CodeCamp.Session.reopen({ 
    speakers: DS.hasMany('CodeCamp.Speaker') 
}); 

預先感謝您

回答

1

JSON的結構應該是這樣的

{ speakers: [{ id: 2, name: "FooBar" }] } 

發現這個承諾,顯示我只需要來包裝一個名爲字典裏面的json

https://github.com/Kurki/data/commit/f59ad5bc9718634b6f3d59356deae0bf97a1bbd5

所以這是我的自定義JSON方法現在在我的Django適配器

findMany: function(store, type, ids) { 
              var root = this.rootForType(type), plural = this.pluralize(root), json = {}; 
              this.django_ajax(this.buildURL(root, ids), "GET", { 
                success: function(pre_json) { 
        json[plural] = pre_json;                  
                   this.sideload(store, type, json, plural); 
                   store.loadMany(type, json[plural]); 
             } 
           }); 
       } 
相關問題