我想做的事情非常简单,但我正在努力找到最好或最优雅的方法来做到这一点。我现在正在构建的 Rails 应用程序将有一个每日课程表。对于每个类别,与此问题相关的字段是:
单个条目可能是这样的:
- 星期几:星期三
- 开始时间:上午10:00
- 结束时间:中午
另外我必须提到它是一个双语 Rails 2.2 应用程序,并且我正在使用本机 i18n Rails 功能。我其实有几个问题。
关于一周中的某一天,我应该创建一个包含日期列表的额外表,还是有一种内置方法可以动态创建该列表?请记住,一周中的这些天必须在时间表视图中以英语或西班牙语呈现,具体取决于区域设置变量。
在查询时间表时,我需要按工作日(从周一到周日)对结果进行分组和排序,当然还要按开始时间对每天的课程进行排序。
关于每节课的开始时间和结束时间,你会使用日期时间字段还是整数字段?如果是后者,您将如何具体实施?
期待阅读你们提出的不同建议。
我只是将星期几存储为整数。 0 => 星期一 ... 6 => 星期日(或任何你想要的方式。即 0 => 星期日)。然后将开始时间和结束时间存储为 Time。
这将使分组变得非常容易。您所要做的就是按星期几和开始时间排序。
您可以通过多种方式显示它,但这就是我要做的。
-
具有如下功能:@sunday_classes = DailyClass.find_sunday_classes
返回按开始时间排序的周日所有课程。然后每天重复。
def find_sunday_classes
find_by_day_of_week(1, :order -> 'start_time')
end
注意:find_by 可能应该在末尾有 id,但这只是您想要如何命名列的偏好。
如果您想要完整的一周,请从控制器调用所有七个并在视图中循环它们。您甚至可以为每一天创建详细信息页面。
- 翻译是唯一棘手的部分。您可以创建一个辅助函数,它接受一个整数并根据本地返回一周中相应日期的文本。
这是非常基本的。没什么复杂的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)