我有一个名为 WorkInterval 的模型,它的记录基本上包含:
start_date, end_date
我希望能够获得特定任务的所有 WorkIntervals(我知道如何处理关联)并获得花费的总时间。因此,对所有实例的 end_date 和 start_date(end_date - start_date)之间的所有差异进行聚合(加法)。
现在我可以这样做:
@task.work_intervals
-> 这给了我所有的 work_intervals,但我怎样才能以一种干净的 ruby 方式获得在该任务上花费的时间总和?
注意事项:
1 - end_date 和 start_date 都是 DateTime。
2 - 某些实例的结束日期可能为 NIL,如果是这种情况,则应采用当前日期时间。
最佳答案
@task.work_intervals
.map {|i| (i.end_date || Time.now).to_time - i.start_date.to_time }
.reduce(:+)
# => total in seconds
关于ruby-on-rails - 从不同实例中查找时间总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15955097/