Rails活动记录查询工作日总计离开

时间:2017-12-14 11:49:44

标签: mysql ruby-on-rails activerecord

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

离职表有开始和结束日期列,假设员工从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

1 个答案:

答案 0 :(得分:0)

我认为你可以使用gem groupdate

使用如下查询:

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