Ember Web アプリケーションに問題があります。モデルと CRUD 操作の間の関係を処理するために、ベース JS フレームワークとして Ember 1.0 安定版を使用し、Ember-data.js 1.0 ベータ 1 を使用しています。
私の単純なアプリケーションは、User と Order の 2 つのエンティティを管理し、それらの間に多対多の関係があります。
モデルは次のとおりです。
/*User Model*/
App.User = DS.Model.extend({
first_name: DS.attr('string'),
last_name: DS.attr('string'),
fullName: function() {
return this.get('first_name') + ' ' + this.get('last_name');
}.property('first_name', 'last_name'),
userorders: DS.hasMany('userorder', {async: true})
});
/*Order Model*/
App.Order = DS.Model.extend({
description: DS.attr('string'),
userorders: DS.hasMany('userorder', {async: true})
});
User と Order の両方と 1 対 1 の関係を維持するモデル Userorder を作成しました。
Userorder のモデルは次のとおりです。
App.Userorder = DS.Model.extend({
order: DS.belongsTo("order", {async: true, key: "order_id"}),
user: DS.belongsTo("user", {async: true, key: "user_id"})
});
ユーザーオーダーの単一のインスタンスを (UserorderRoute に) 取得しようとすると、問題が発生します。UserorderRoute のコードに従います。
App.UserorderRoute = Ember.Route.extend({
model: function(params) {
return this.store.find("userorder", params.userorder_id);
}
});
userorder インスタンスは正しくフェッチされますが、「order」オブジェクトにアクセスしようとすると未定義になります (明らかに、「user」へのアクセスでも同じ動作になります)。