从Sinatra发送DELETE请求

我正在尝试开发RESTful Sinatra应用程序。 现在,我知道如何用类似的方式响应删除请求

delete '/user/:id' do |id| #do something in the model end 

我感兴趣的是如何执行该方法。 我不能拥有DELETE而不是GET的链接,可以吗?

到目前为止我找到的唯一解决方案是通过jQuery发送DELETE请求: 如何在jQuery中发送PUT / DELETE请求?

我尝试在github上查看不同的RESTful Sinatra项目,但我的Ruby知识可能仅限于了解它们是如何做到的。

在代码中添加以下行。

 use Rack::MethodOverride 

它将帮助您使用参数“ _method ”解释post方法,其值为“ delete ”。 然后你就可以写了

 delete '/user/:id' do |id| 

我认为这就像Rails的方式。 您需要使用’delete’值定义params’_method’并将其添加到表单上。

当您使用此特定参数对表单进行POST时,您将在sinatra中执行DELETE请求。

喜欢 :

 

它与PUT方法相同

另一种方法是使用Curl:

 curl -X DELETE http://host/user/1 
  %form{:action => "/note/delete/#{@note.id}", :method => "post"} %input{:type => 'submit', :name=> "_method", :value => 'delete', :class => 'button'} 

您也可以使用这样的按钮触发删除路线

另请参阅使用jQuery调用Sinatra删除路由,了解如何使用前端的jQuery和JSON以及后端的Sinatra执行此操作。