我有以下栏目:
ts = Timesheet.select('CASE WHEN price_cents = 0 THEN false ELSE true END as Billable, SUM(time_end - time_start) AS Hours').where(:user => current_user).group('CASE WHEN price_cents = 0 THEN false ELSE true END')
这个查询允许我一次性获得所有可计费和无法计费的小时数,因此性能明智这是完美的。
然而它会返回
#<ActiveRecord::Relation [#<Timesheet id: nil>, #<Timesheet id: nil>]>
它有2条记录。为了能够得到我需要的时间:
ts.first.hours
是否有一种简单的方法可以获得计费和无法计费?
答案 0 :(得分:0)
将billable
和hours
的数组作为:
ts = Timesheet.select('CASE WHEN price_cents = 0 THEN false ELSE true END as Billable, SUM(time_end - time_start) AS Hours').where(:user => current_user).group('CASE WHEN price_cents = 0 THEN false ELSE true END')
ts.map { |t| [ t.billable, t.hours ] }