経理部門用のダッシュボード アプリケーションを構築しています。
ユーザーが月を選択すると、その月に特定の基準を満たすすべての企業が表示されます。ルートは
/:month_id a summary page
/:month_id/companies more details about each company
/:month_id/companies/:company_id all details about a single company
理想的には、month
モデル化するhasMany
company
モデルが必要です。唯一の問題は、企業が数か月後に表示されることです。
間違っていたら訂正してください。しかし、これは、会社が既にストアにある場合、新しい月が要求されたときに、その会社のデータをサーバーではなくストアから取得することを意味しませんか? データは月ごとに異なるため、これはうまくいきません。
このアプリケーションでは、各企業の ID は実際には通常の整数 ID に選択した月を加えたものだと思います。したがって、これを回避する 1 つの方法は、各企業に のような ID を付与すること'15-Mar-2013'
です。
別の方法として、毎月のcompanies
データを raw で渡し、単純な配列で変換を行うこともできます。ただし、これに関する問題は、(1 か月全体に加えて) 企業の集計を計算する必要があることです。これら 2 つのことを分けておくと非常に便利です。完全に別の Company モデルがあれば、モデル内で町に行くことができます。
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('contracts.@each.feeChange'),
...additional aggregation functions
});
どう思いますか?