5

経理部門用のダッシュボード アプリケーションを構築しています。

ユーザーが月を選択すると、その月に特定の基準を満たすすべての企業が表示されます。ルートは

/: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
});

どう思いますか?

4

1 に答える 1

0

私には何の意味もありませんmonth[1]->[N]company

あなたが言いたいのは、1 か月以内に発生する特定の基準を持つすべての会社を探しているということです。選択した月は検索基準の一部にすぎません。

于 2013-11-19T15:45:23.343 に答える