1

私は最初の hasMany 関係を ember-data と実行しており、常に楽しいものをヒットしています

「キャッチされないエラー: アサーションに失敗しました: サーバーはキー 0 のハッシュを返しましたが、マッピングがありません」

これは通常、私が「残り火」に適した形式と呼んでいる JSON 構造を持っていないことを意味します。

私はdjango restフレームワークを使用してdjango用の独自のRESTアダプタを構築しているので、エラーなしでサイドロードするためにこれがどのように見えるか興味があります.

現在、戻ってくる json は以下のようになっています (明らかにセッションに結び付いていませんが、ember はこれを接続する方法を既に知っているのではないでしょうか?)

[{"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')
});

前もって感謝します

4

1 に答える 1

1

json 構造は次のようになります。

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

json を名前付き dict 内にラップする必要があることを示すこのコミットを見つけました

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

これは、私のdjangoアダプターにある私のカスタムjsonメソッドです

 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]);
                }
            });
        }
于 2012-10-01T19:30:39.553 に答える