前提・実現したいこと
Ruby on Railsで月毎の残業時間を集計したいと考えています。
具体的には、以下のOvertime tableの全てのデータから、
{"2019年04月"=>○○:○○:○○, "2019年05月"=>○○:○○:○○, …}
というハッシュを作りたいのですが、時間を加算する方法が分からずにいるので、お手数ですがその方法を教えていただきたいです。
コードの検討状況
groupメソッドが、種類毎即ち月毎の集計に役立つと認識しています。
Overtime.group("DATE_FORMAT(date,'%Y年%m月')").count
により、
{"2019年04月"=>11, "2019年05月"=>10, "2019年06月"=>6, …}
と個数の集計は出来ました。
Overtime.group("DATE_FORMAT(date,'%Y年%m月')").sum(:work_time)
とする事で時間の集計が得られるかと思ったのですが、コンソールで試したところ、
{"2019年04月"=>nil, "2019年05月"=>nil, "2019年06月"=>nil, …}
とうまくいきませんでした。
試した事
tableからwork_timeを取り出して来るとどのような結果になるのかを確認するため、コンソールにて Overtime.first.work_time
としたところ、 Sat, 01 Jan 2000 02:48:27 JST +09:00
と年月日も付随していました。
参考にした情報
補足情報(FW/ツールのバージョンなど)
Overtime tableへのデータ投入に際しては、時刻を扱うgemであるtodを使用しました。
github
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。