Ruby on Rails で財務報告アプリを構築しています。アプリには、毎月の財務諸表オブジェクトがあります (属性として「収益」を使用)。任意の 1 つの財務諸表について、(1) 年初から現在までの収益と (2) 昨年から現在までの収益 (暦年は問題ありません) を表示したいと考えています。各オブジェクトには、「月」と呼ばれる日付 (Datetime ではない) 属性もあります (「月」変数名と「月」メソッド名の混乱に注意してください...その変数名を変更する必要があるかもしれません)。
そう...
(1) 適切な日付範囲で財務諸表 (つまり、オブジェクト) の配列を「検索」し、(2) 「収益」フィールドを合計する必要があると思います。これまでの私のコードは...
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 }
終わり
これによりアプリが壊れることはありませんが、正しくない「0」が返されます。
アイデアや助けをいただければ幸いです。