我正在构建一个基于日历的应用程序(具有日历中预期的基本功能)。
由于日历将具有应用程序的这一基本部分,我不想依赖任何宝石,而是自己构建日历。
我不知道要走哪条路线:让日模型代表每一天有一个唯一记录(事件可以通过day_id引用)或者根据Date类“动态”渲染日历(和然后事件会引用日期。
简而言之:什么样的模型设计最有效的呈现日历?
答案 0 :(得分:2)
您根本不需要模型。下面的代码可以解决问题。
从https://gist.github.com/RichIsOnRails/5535564抓取代码并将其放入帮助程序中,使用如下(下面的haml,以便根据自己的需要进行调整。)请注意,我在这个日历中渲染事件,但是你不要不得不。
= calendar @date do |date|
.text-left=date.day
- if @events_by_date[date]
- @events_by_date[date].each do |event|
.event=event.title
我将在不久的将来在我的网站上做一篇详细介绍的文章。祝你好运!
答案 1 :(得分:0)
除非您想要建模的日期有特定内容,否则您可能只能拥有一个事件模型,每个事件都有一个日期字段。这种方法更简单,我认为更可取。由于日期实际上无限多,这种方法的一大优点是您不需要管理在数据库中保留有限日期子集的所有逻辑不一致性。
即使您需要日模型,也可以在不将模型绑定到数据库的情况下执行此操作,从而避免在数据库中为每个可能的日期创建记录。如果您想要一种方法告诉您某天是工作日,还是想要查找天数集合,这可能很有用。有关如何创建不需要数据库表的模型的更多信息,请参阅此stackoverflow问题:Tableless model in rails 3.1