【问题标题】:Create a new reservation via a restful url?通过一个宁静的网址创建一个新的预订?
【发布时间】:2009-09-11 00:47:40
【问题描述】:

我有一个 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/编辑

目前在玩应用程序时,我通过表单字段输入详细信息,但是日期时间选择小部件会让事情变得更容易使用。

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

我看到航空公司等网站倾向于呈现一系列带有唯一代码的网址。我希望这需要一个会话来跟踪这些唯一 ID。

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

谢谢

【问题讨论】:

  • +1 将您的计算机称为“木星”:-) 我的计算机称为水星、金星、地球、火星、木星和塞德娜。

标签: ruby-on-rails url rest


【解决方案1】:

我会说您使 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(尽管我认为它也会添加它)。

如果您需要更多想法,请务必更新您的问题 :)

【讨论】:

  • 感谢您的回答 Yaraher。我会对此进行调查,并在接下来的几天内提供更新。
【解决方案2】:

我认为,只要您将控制器操作映射到正确的 http 动词,您就处于正确的轨道上。我的一些控制器没有实现每个动词,有些控制器重载动词 - 不是什么大问题。

我认为您只是想让new 操作更加了解上下文。例如,假设您想让/reservations/new 使用或不使用参数。如果传入参数,您可以隐藏开始日期/时间选择器并将值填充到hidden fields 中。如果未传入参数,则显示开始日期/时间选择器。您可能会使用相同的控制器操作(新),但会根据参数呈现不同版本的视图。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-01-03
    • 2020-10-15
    • 2013-05-10
    • 1970-01-01
    • 2012-07-27
    • 2013-03-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多