0

これが私の Ember-Data モデルです。

Lrt.Option = DS.Model.extend({
    option_relation_value:  hasMany('option')
});

JSON の例を次に示します(この質問のために短縮されています) 。

{
    "optionGroups": [], 
    "optionSubGroups": [
        {
            "id": "3",  
            "optionType": [
                "80", 
                "81", 
                "82", 
                "83", 
                "84", 
                "248", 
                "278"
            ],
            "title": "Option Group for 80"
        }
    ], 
    "options": [
        {
            "id": "45", 
            "option_relation_value": [
                "80"
            ]
        },
        {
            "id": "80",
            "option_relation_value": []
        }
    ]
}

オプションをサイドローディングする「OptionGroup」および「OptionSubGroup」モデルもあります。

私が抱えている問題は、「hasMany」をモデルに追加した後、次のようにオプションのストアを照会できなくなったことです。

this.get('store').find('option')

単純に「0」を返しますが、Ember Inspector では 400 以上のエントリが表示されるので、データが読み込まれていることがわかります。

chrome インスペクターを使用してすべての例外で中断すると、Ember-Data の 2246 行目の次の行で中断します。

2246: Ember.assert('The id ' + id + ' has already been used with another record of type ' + type.toString() + '.', !id || !idToRecord[id]);

エラーは次のとおりです。

"Cannot call method 'toString' of undefined"

この行の「type」は「未定義」です。

この hasMany 関係で何が間違っていますか?

Ember-Data 1.0 Beta 2 を使用しています。

4

1 に答える 1