Sto creando un'applicazione di dashboard per un reparto contabilità.Modellazione di oggetti senza ID nei dati di brace
L'utente seleziona un mese e visualizza tutte le società che soddisfano determinati criteri in quel mese. I percorsi saranno
/:month_id a summary page
/:month_id/companies more details about each company
/:month_id/companies/:company_id all details about a single company
Idealmente mi piacerebbe avere un modello che hasMany
company
modelli month
. L'unico problema è che le aziende si presenteranno in più mesi.
Correggetemi se ho torto, ma questo non significa che se un'azienda è già nel negozio, quando viene richiesto un nuovo mese, prenderà i dati della società dallo store anziché dal server? I dati saranno diversi per ogni mese, quindi questo non funzionerebbe per me.
Suppongo che in questa applicazione l'ID di ciascuna azienda sia realmente il loro numero intero, intero più il mese selezionato. Quindi, un modo per aggirare questo sarebbe dare ad ogni azienda un id come '15-Mar-2013'
.
In alternativa, potevo semplicemente passare i dati di ogni mese companies
attraverso grezzi e fare le trasformazioni sulla matrice semplice. Il problema con questo, però, è che dovrò calcolare gli aggregati sulle aziende (oltre all'intero mese), e sarebbe molto bello tenere separate queste due cose. Se avessi un modello aziendale completamente separato, potrei semplicemente andare in città all'interno del modello:
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
});
Cosa ne pensi?
Se i dati per l'azienda sono diversi ogni mese, il record non è un'azienda. È un 'CompanyReport' o qualcosa del genere. –
Concordato, ma ancora - come risolvere il problema? Assegnare un id arbitrario al 'CompanyReport'? Il 'CompanyReport' è essenzialmente un'istantanea filtrata di alcuni set di dati del server. –