0

我正在寻找有关如何设计一个显示待办事项列表周视图的 Web 应用程序的建议。

当前布局是一个表格,其中一周中的几天作为列,下面列出了要完成的项目。通过计算控制器中的标题日期,我得到了一些功能:

@week_starting = Date.today.at_beginning_of_week if @week_starting.blank?

其他工作日标题通过增加@week_starting 来显示。

我创建了单独的实例变量,例如@to_do_on_mon、@to_do_on_tue 等,以显示当天要做的事情(然后遍历它们以列出项目)。这是一个例子:

@to_do_on_mon = BatchTicket.where("Date(load_date) =?", @week_starting.strftime

您将如何改进此设计以轻松增加/减少显示的周数并列出要完成的项目?

4

1 回答 1

1

首先,这只是个人喜好,但我认为将第一行更改为这样会使代码更好:

@week_starting ||= Date.today.at_beginning_of_week

它更短,更清晰。

我不确定我是否理解你想用Date(load_date)那里做什么,但由于你有 ActiveSupport 可用,我可能会做一些更具可读性的事情,如下所示:

@to_do_on_mon = BatchTicket.where date: (@week_starting + 0.days)
@to_do_on_tue = BatchTicket.where date: (@week_starting + 1.days)
# etc.

或者,根据您的页面/应用程序的外观,如果需要,您可以在一个查询中完成:

BatchTicket.where('your date range').group_by { |b| b.date.strftime("%u") }

将返回分组为天 (1..7) 的数组。

希望有帮助

于 2013-06-19T07:12:22.640 回答