首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Rails UI日期导航控制生成(ActiveRecord逻辑)

Rails UI日期导航控制生成(ActiveRecord逻辑)
EN

Stack Overflow用户
提问于 2012-11-28 04:11:05
回答 1查看 117关注 0票数 0

我有一个应用程序,用户可以查看体育赛事的今天的日期或给定的日期(如果用户手动输入它的URL)。用户可以使用UI控件按日期导航体育赛事,该控件大致如下所示:

代码语言:javascript
运行
复制
Tue Nov. 27  | Wed Nov. 28  | Thu Nov. 29

(除了中间的当前活动日期外,日期都是链接。)

这种日期导航控制对几乎每天发生的体育赛事都有很好的效果。用户从不盯着事件的空白页。然而,对于像NFL这样的体育赛事,事件只发生在周一、周四、周日(有时是星期六),用户使用日期导航UI控件变得很麻烦。

我想做的是改变创建日期导航UI链接背后的逻辑,只包括那些有事件的日期。逻辑是这样的:

  • 给定今天的日期或用户提供的日期,返回最近的有事件的日期(current_date)
  • 给定一个current_date,查找最近的有事件的日期(previous_date)
  • 给定一个current_date,查找最近的下一个有事件的日期(next_date)

因此,在NFL的情况下,假设今天的日期是11月27日,则日期导航UI控件可能看起来类似:

代码语言:javascript
运行
复制
Mon Nov. 25  | Thu Nov. 29  | Sun Dec. 2

判断给定日期是否存在事件的方法是DB中的start_time字段。

我不喜欢在没有一些代码的情况下发布一个问题,但我正在寻找一些指导,说明我应该如何处理这个问题,而不必花很多时间访问DB。

注1:当您单击某项运动的日期时,它将返回该日期的所有事件。日期导航不用于查看单个事件。

EN

回答 1

Stack Overflow用户

发布于 2012-11-28 07:04:31

在您的模型中创建一个范围方法,用于获取给定运动的下两个开始日期和最近的开始日期。限制它只返回三条记录。

使用控制器中的这个范围只获取这三个游戏对象。对于控制器中的这三个游戏对象,将它们作为实例变量(例如render @games)传递给视图分部,并在部分中编写泛型链接代码<%= link_to "#{@games.start_time}", your_path(@game) %>。Rails将自动迭代这个部分,以获得集合中的对象数(三个游戏)。

来源:rendering.html#using-partials

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13597689

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档