获取数组而不是ActiveRecord:Relation

时间:2014-03-26 00:45:38

标签: ruby-on-rails activerecord

我有以下栏目:

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

是否有一种简单的方法可以获得计费和无法计费?

1 个答案:

答案 0 :(得分:0)

billablehours的数组作为:

返回
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 ] }