私は会計部門のダッシュボードアプリケーションを構築しています。emberデータにIDのないオブジェクトをモデル化する
ユーザは1か月を選択し、その月に特定の基準を満たすすべての企業を表示します。ルートは
/:month_id a summary page
/:month_id/companies more details about each company
/:month_id/companies/:company_id all details about a single company
理想的には私がどのhasMany
company
モデルmonth
モデルを持っているだろうになります。唯一の問題は、企業が複数の月に現れることです。
私が間違っていると私を訂正しますが、これは、ある企業がすでに店舗にいる場合、新しい月が要求されたときに、その会社のデータをサーバーからではなく店舗から取得することを意味していませんか?データは毎月違うので、私にとってはうまくいかないでしょう。
このアプリケーションでは、各社のIDは実際には、通常の整数IDと選択された月です。ですから、これを回避する方法の1つは、各企業に'15-Mar-2013'
のようなIDを与えることです。
また、毎月のcompanies
データを生のままに渡して、プレーンな配列で変換を行うこともできます。しかし、この問題は、企業の集計(月全体に加えて)を計算しなければならないことです。その2つの事柄を分けておくことは非常にうれしいでしょう。私が完全に別の会社のモデルを持っていたら、モデル内の街に行くことができます:
App.Company = DS.Model.extend({
month: DS.belongsTo('App.Month'),
name: DS.attr('string'),
contracts: DS.hasMany('App.Contract'),
totalRevenue: function() {
return this.get('contracts')
.filterProperty('type', 'newSetup')
.getEach('feeChange').reduce(function(accum, item) {
return accum + item;
}, 0);
}.property('[email protected]'),
...additional aggregation functions
});
あなたはどう思いますか?
会社のデータが毎月異なる場合、そのレコードは会社ではありません。それは 'CompanyReport'か何かです。 –
合意が、まだ - どのように問題を解決するには?任意のidを 'CompanyReport'に割り当てますか? 'CompanyReport'は、本質的に、いくつかのサーバデータセットのフィルタリングされたスナップショットです。 –