アダプター「findQuery」に関数があり、関数はサーバーからデータを取得して返す必要があります。
関数:
findQuery: function(store, type, query) {
var userId = query['user_id'];
delete query['user_id'];
if (this.sortQueryParams) {
query = this.sortQueryParams(query);
}
var adapter = this;
// Create nested url
//return this.ajax(this.urlPrefix(this.pathForType(type.typeKey), this.buildURL(type, userId)), 'GET', { data: query });
// We would like to relate the rows to the connected user
return new Ember.RSVP.Promise(function(resolve, reject) {
adapter.ajax(adapter.buildURL(type.typeKey, null, userId), 'GET', { data: query }).then(function(devices) {
store.find('user', userId).then(function(user) {
devices.setEach('user_id', user);
resolve(devices); // devices is set exactly as i wanted!
}, function(failed) {
reject(failed);
});
}, function(error) {
reject(error);
});
});
}
したがって、関数をデバッグすると、関数が正しいデータで解決されることがわかります (API は、要求されたすべてのデータをオブジェクトの配列として返しました)。そして、ログエラーが発生します:
エラー: アサーションに失敗しました: findQuery からの応答は未定義ではなく、配列でなければなりません
アップデート
問題は解決しましたが、なぜ発生するのかまだわかりません。
何が起きましたか?
store-injector ファイルに設定しました
inflector.irregular('general_device', 'devices');
それは私のためにそのように見えるAPIエンドポイントを解決します:
何らかの競合がありますが、私が試みたのは、次のような上記の関数で URL を解決することです。
それは解決しましたが、それが起こった理由を参照できません。それは理にかなっていますが、誰かがそれが起こった理由を説明できることを願っています.