0

我正在构建一个时间表/项目管理应用程序。用户被分配到项目。作业有开始和结束日期。

时间表具有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

这是一个好的解决方案还是有更好的解决方案?

  • 如果没有带有“week_ending_date”的时间表,则称一周为空
  • 一周从星期一开始,到星期日结束
  • 数据库是 MySQL
  • 导轨 4.0 / 红宝石 2.0
4

0 回答 0