【发布时间】:2012-01-14 21:50:22
【问题描述】:
我们可以写
get '/foo' do
...
end
和
post '/foo' do
...
end
这很好。但是我可以在一个路由中组合多个 HTTP 动词吗?
【问题讨论】:
-
下面我给你两个解决方案。但是,请注意linked discussion 中的这句话:“我不知道什么时候对相同路径的 GET 或 POST 是正确的应该会导致相同的行为/响应。我一直发现它是情况下,尽管响应可能相同,但行为存在细微差别。这就是模板/视图的用途。它们可能共享的任何功能都可以轻松包装在另一种方法中。" 你确定您真的希望
get和post使用完全相同的路线吗? -
谢谢。我仍然希望能够区分路线内的动词。 multi_route 好像不支持这个,不过加起来肯定是微不足道的。
-
我更新了我的答案,表明您始终可以使用
request.env["REQUEST_METHOD"]来确定您的路线中的动词是什么。您关心的事实使您可能应该拥有两条单独的路线以及一个或多个共享助手和视图的事实更加明显;然而,Sinatra 的美妙之处在于没有一种正确的方法……所以尽情享受吧! :)