Rails Active Record Query工作日总计离开

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Rails Active Record Query工作日总计离开相关的知识,希望对你有一定的参考价值。

情景是有酒店,有这么多员工。现在员工可以申请离开。

离职表有开始和结束日期列,假设员工从12月5日到12月15日休假,开始日期为12月5日,结束日期为12月15日。

我怎样才能在特定的工作日2017年获得总假期,如周一?

找到解决方案:

def calculate_weekdays
count_weekday = {}
(0..6).to_a.select{|t| count_weekday[t]=0 }
Event.all.each do |event|
  start_date, end_date = event.start_time, event.end_time
  result = ( start_date.to_date..end_date.to_date ).to_a.select { |k| count_weekday[k.wday]=count_weekday[k.wday]+1}
end
return count_weekday
end
答案

我想你可以使用gem groupdate

使用如下查询:

Leave.where( ... ).group_by_day_of_week(:start_date).count

以上是关于Rails Active Record Query工作日总计离开的主要内容,如果未能解决你的问题,请参考以下文章

如何更改 Rails 中 Active Record 的默认时区?

Active Record Query Interface 数据查询接口(界面)

Rails 中的 Active Record 和 ORM 有啥区别?

Rails中重写Active Record字段属性

Rails 和 Active Record:复杂的 SQL 查询

Rails Active Record 不允许保存