我正在建立一个时间表/项目管理应用程序。用户被分配到项目。作业有开始和结束日期。
Timesheets有week_ending_date
,用于标识创建时间表的周数(涵盖所有7天)。
我需要找到的是,没有时间表的周(用户已分配项目)。
我的解决方案是什么?
我想到了:
dates = []
assignments = user.project_assignments.pluck("assignment_start_date, assignment_end_date")
assignments.each do |assignment|
dates << (assignment[0]..assignment[1]).to_a
end
dates.flatten!
获取时间表必须可用的日期。现在我做了,
Timesheet.all.select('week_ending_date').uniq.map(&:week_ending_date)
现在使用这些week_ending_dates,我可以找到每周的日期。然后我可以从之前的dates
中减去这个。
这是一个很好的解决方案还是有更好的东西?