Je construis une application de reporting financier avec Ruby on Rails. Dans l'application, j'ai des objets d'états financiers mensuels (avec 'revenu' comme attribut). Pour un seul état financier, je veux montrer (1) des revenus à ce jour, et (2) des revenus de dernière année (les années civiles sont bien). Chaque objet possède également un attribut Date (pas Datetime) appelé 'month' (attention au nom de la variable 'month' par rapport au nom de la méthode 'month' ... peut-être que je devrais changer ce nom de variable).Date complexe de recherche et d'injection
Alors ...
Je pense que je dois (1) « trouver » le tableau des états financiers (à savoir, des objets) dans la plage de dates appropriée, puis (2) la somme des champs « recettes ». Mon code est à ce jour ...
def ytd_revenue
# Get all financial_statements for year-to-date.
financial_statements_ytd = self.company.financial_statements.find(:all,
:conditions => ["month BETWEEN ? and ?", "self.month.year AND month.month = 1",
"self.month.year AND self.month.month" ])
# Sum the 'revenue' attribute
financial_statements_ytd.inject(0) {|sum, revenue| sum + revenue }
fin
Cela ne rompt pas l'application, mais retourne « 0 » qui ne peut pas être correct.
Des idées ou de l'aide seraient appréciées!