我有一个html表,其中包含几天的列和一天中几小时的行。 我打算将它作为一个UI小部件,类似于常见的日历日期选择器。
单击表格的特定单元格将选择创建新预订的日期和时间。
我正在考虑使用网址来表示此选项,例如,
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 :(得分:3)
我会说你的RESTful路线过于复杂。 REST URI强调使用资源。预订是一种资源。日期,恕我直言,不是。它主要是一个参数,因此,你应该使用类似的东西:
http://jupiter.local/reservations/new/?date=2009-09-10&start-hour=1200&end-hour=1300
虽然,我尝试使用POST方法(http://jupiter.local/reservations/new)
发送它们无论哪种方式,控制器都可以使用params [:reservation] [:date],params [:reservartion] [:start-hour]等。
这是一种更简单的方法。
有了这个,我猜这些是映射到表的属性。如果没有,您可以使用
轻松地为模型创建“虚拟”属性attr_accessor :date, :start-hour, :end-hour
句子。
如果你通过AJAX发送它(我想你会从你的描述中使用它),Rails将添加一个认证字符串,你也可以添加你的会话ID(虽然我认为它也添加了它)。
如果您需要更多想法,请务必更新您的问题:)
答案 1 :(得分:0)
我认为只要你将你的控制器动作映射到正确的http动词,你就在正确的轨道上。我的一些控制器没有实现每个动词,而且有些控制器会重载动词 - 这不是什么大不了的事。
我认为你只想让new
动作更多地了解情境。例如,假设您希望/reservations/new
使用或不使用参数。如果传入参数,您可以隐藏开始日期/时间选择器并将值填入hidden field s。如果未传递参数,则显示开始日期/时间选择器。您可以使用相同的控制器操作(新),但可以根据参数呈现视图的不同版本。