2009-09-11 53 views
3

我有一个html表,它包含天的列和一天中的小时的行。 我打算这是一个UI小部件,类似于常见的日历日期选择器。通过宁静的网址创建新的预订?

单击表格的特定单元格将选择该日期和时间以创建新预留。

我是用一个URL来表示这个选择,例如考虑,

http://jupiter.local/reservations/new/2009-09-10/1200/1300 

http://jupiter.local/reservations/new/date/2009-09-10/start-time/1200/end-time/1300 

这是一种有效的方法?

我已经阅读了一些关于休息的内容,但是我仍然不明白,除了显示如何编辑博客记录的明显示例。例如博客/文章/ 23 /编辑

目前,当玩弄应用程序,我通过表单域输入细节,但日期时间选择小部件将使事情变得更容易使用。

(当前)计划是呈现一系列可用时间的网址。如果某个插槽已被预订,则不会呈现网址。当然,我也会验证输入。 首先,我会假设一个小时的时间槽是可以预订的。

我发现像航空公司这样的网站倾向于使用唯一代码呈现一系列网址。我希望这需要一个会话来跟踪这些唯一的ID。

我在寻找一些关于该方法的指导,因为我之前没有设计过这样的东西,它主要是作为一种学习体验。

感谢

+0

+1调用您的计算机“木星” :-)矿被称为水星,金星,地球,火星,木星和塞德娜。 – 2012-12-05 12:00:31

回答

3

我想说你有点过于复杂的RESTful路线。 REST URI强调使用资源。预约是一种资源。一个日期,恕我直言,它不是。这主要是设置了一个param,因此,你应该喜欢的东西合作:

http://jupiter.local/reservations/new/?date=2009-09-10&start-hour=1200&end-hour=1300 

虽然,我会尝试使用POST方法(http://jupiter.local/reservations/new

给他们在这两种方式中,控制器将使用params [:预订] [:日期],params [:reservartion] [:开始时间]等工作。

这是一个更简单的方法。

因此,我猜这些属性映射到表。如果不是,则可以轻松地为该模型创建“虚拟”属性,其中

​​

句子。

如果你通过AJAX发送它(我想你会从你的描述中使用它),Rails将添加一个验证字符串,并且你也可以添加你的会话ID(尽管我认为它也添加了它)。

如果你需要更多的想法,一定要更新你的问题:)

+0

感谢您的回答Yaraher。我会研究这一点,并在接下来的几天内提供更新。 – 2009-09-12 20:09:27

0

我觉得只要你映射你的控制器行动,以正确的HTTP动词你在正确的轨道上。我的一些控制器没有实现每个动词,有些控制器超负荷动词 - 这不是一个大问题。

我想你只是想让new动作更多的情境感知。例如,假设您想要使用/reservations/new或不使用参数。如果传入参数,您可以隐藏开始日期/时间选择器并将值填入hidden field s。如果参数未通过,则显示开始日期/时间选择器。你可以使用相同的控制器动作(新的),但根据参数渲染不同版本的视图。

+0

谢谢安迪,我会尽力阅读。 – 2009-09-12 20:11:42