我是Ruby / Rails的新手,我正在尝试找到在ERB中执行表的最优雅的方法,其中列是工作日,行是给定模型的每个记录。概念本身很简单,我可以通过一堆手动代码来实现,但我想尽可能多地利用rails / erb魔法。更具体地说,这就是我定义的内容。
我想要一个视图,列出表中具有该周状态的所有用户。例如:
Mon | Tue | ... | Fri
User1 on | off | ... |
User2 off | | ... |
有几点需要注意: - (正如我已经提到的)用户每天只能拥有一个状态 - 用户可能在某一天没有任何状态 - 没有Sat / Sun的列 - 表格将始终显示整个当前周,即使当天是星期二(即,在这种情况下,星期三......星期五条目将只是空白)。
现在,再次,我确信我可以编写一堆erb代码来手动执行此操作,但希望使用一些rails魔法。任何指针或帮助将非常感激。
答案 0 :(得分:2)
您可以随时执行以下操作:
@monday = Date.today.at_beginning_of_week
7.times do |x|
@days << x.days.since(@monday)
end
然后在你的视图中循环@days。
您可以打印日期,也可以只打印小时表行中的日期。有用的是,您还可以使用该日期查找用户状态。