#licecontroller:0x007f21ac69dd20>的未定义方法`TimeDifference'

时间:2017-03-03 01:03:03

标签: ruby-on-rails ruby datetime time ruby-on-rails-5

我正在尝试time_difference gem减去2个日期时间并将按月分组的结果与此代码相加

downtime = @Ticket.sum(TimeDifference(:start_time, :restore_time)).in_hours.round.group_by { |t| t.due_at.beginning_of_month }

但最终显示TimeDifference的No Method Error消息

1 个答案:

答案 0 :(得分:0)

如果你看一下自述文件,你会发现该方法是

TimeDifference.between(time1, time2)

您遗失.between

此外,您作为参数(:start_time:end_time)传递的值不是时间对象,而是符号。如果不清楚,你应该阅读变量和符号之间的区别。

此外,.in_hours.round返回一个整数。所以你的group_by会引发NoMethodError。我不确定您在这里尝试使用group_by,因为您没有可迭代的内容。