我有一个应用程序,用户可以查看体育赛事的今天的日期或给定的日期(如果用户手动输入它的URL)。用户可以使用UI控件按日期导航体育赛事,该控件大致如下所示:
Tue Nov. 27 | Wed Nov. 28 | Thu Nov. 29
(除了中间的当前活动日期外,日期都是链接。)
这种日期导航控制对几乎每天发生的体育赛事都有很好的效果。用户从不盯着事件的空白页。然而,对于像NFL这样的体育赛事,事件只发生在周一、周四、周日(有时是星期六),用户使用日期导航UI控件变得很麻烦。
我想做的是改变创建日期导航UI链接背后的逻辑,只包括那些有事件的日期。逻辑是这样的:
因此,在NFL的情况下,假设今天的日期是11月27日,则日期导航UI控件可能看起来类似:
Mon Nov. 25 | Thu Nov. 29 | Sun Dec. 2
判断给定日期是否存在事件的方法是DB中的start_time
字段。
我不喜欢在没有一些代码的情况下发布一个问题,但我正在寻找一些指导,说明我应该如何处理这个问题,而不必花很多时间访问DB。
注1:当您单击某项运动的日期时,它将返回该日期的所有事件。日期导航不用于查看单个事件。
发布于 2012-11-28 07:04:31
在您的模型中创建一个范围方法,用于获取给定运动的下两个开始日期和最近的开始日期。限制它只返回三条记录。
使用控制器中的这个范围只获取这三个游戏对象。对于控制器中的这三个游戏对象,将它们作为实例变量(例如render @games
)传递给视图分部,并在部分中编写泛型链接代码<%= link_to "#{@games.start_time}", your_path(@game) %>
。Rails将自动迭代这个部分,以获得集合中的对象数(三个游戏)。
来源:rendering.html#using-partials
https://stackoverflow.com/questions/13597689
复制相似问题