2010-05-04 38 views
8

我正在考虑开发一个使用Ruby on Rails的应用程序,这是一个排序规划器。我想让用户能够查看日期列表,点击某个特定日期,然后添加如下内容:膳食,费用,事件,待办事项和练习。真的,我正在为我和我的成长家庭做这件事。创建日历/计划器应用程序 - Ruby on Rails

我很好奇如何最好地实现这一点。我当然可以看到,膳食,费用等需要belongs_to:用户,但我很好奇如何实施belongs_to:或类似的东西。使用created_at或updated_at不一定允许我为将来的日期提供视图。

我可以看到,如果我创建了一个Days表,然后通过时间和日期字段添加了几天,这可以工作,但似乎有点奇怪,要求人们创建实际的日子。

或者,也许而不是我可以创建链接到变量,搜索@today,@tomorrow,但会变得混乱。

我浏览过宝石/插件,但无法找到有效的工具。理想情况下,一个人能够。

任何人有任何想法如何实现这样的事情?

回答

6

有一些现有的Rails日历,如http://github.com/elevation/event_calendarhttp://github.com/topfunky/calendar%5Fhelper

但是,要回答您关于日期的具体问题:我不认为有必要将Day作为模型;只需给每个事件一个开始日期和时间,以及结束日期和时间。请记住,Ruby可以轻松地根据范围进行搜索,因此,如果每个事件都有与之相关的日期和时间,那么“下周给我所有事件”就是一件小事。

+0

https://github.com/austinthecoder/cal也是帮助渲染日历的不错的宝石。 – Austin 2012-06-13 04:10:38

1

我会添加一个名为“事件”的模型,并具有模型的属性来表示开始日期/时间,结束日期/时间。我不认为你需要一个Days模型,你可以从Date类生成日历视图内置到ruby。

4

我来试试吧......

两张表;用户和事件。用户有很多事件,一个事件属于一个用户。膳食,费用等是各种类型的事件。在事件中,您可以拥有事件开始和结束时间的字段。如果需要(可以说一个事件持续多天),您可以将发生事件的日期/时间移除到自己的表中。

这样,当显示用户的日历时,您可以找到该日期的所有事件。如果没有找到,则不显示任何内容。

您认为如何?

1

我为培训机构的事件管理做了同样的项目。在那里,我使用了rails的event_calender插件。 (enter link description here
在那里我们只需要创建事件模型。然后,我们可以轻松处理。