Sending a DELETE request from Sinatra

前端 未结 5 1686
没有蜡笔的小新
没有蜡笔的小新 2021-02-04 03:27

I am trying to develop a RESTful Sinatra application. Now, I know how to respond to a delete request with something like

delete \'/user/:id\' do |id|
   #do some         


        
相关标签:
5条回答
  • 2021-02-04 03:59

    Put following line in your code.

    use Rack::MethodOverride
    

    It will help you interpret post methods with parameter "_method" with value "delete" as put. Then you can write

    delete '/user/:id' do |id|
    
    0 讨论(0)
  • 2021-02-04 04:09
      %form{:action => "/note/delete/#{@note.id}", :method => "post"}
        %input{:type => 'submit', :name=> "_method", :value => 'delete', :class => 'button'}
    

    You can also trigger the delete route with a button like so

    0 讨论(0)
  • 2021-02-04 04:12

    see also Call Sinatra delete route with jQuery for how to do this with jQuery and JSON at the front end and Sinatra on the back end.

    0 讨论(0)
  • 2021-02-04 04:13

    I thinks it's like the Rails way. You need define a params '_method' with 'delete' value and add it on your form.

    When you POST you form with this particular params, you do a DELETE request in sinatra.

    Like :

    <form action="/search" method="post">
      <div style="margin:0;padding:0">
        <input name="_method" type="hidden" value="delete" />
      </div>
    </form>
    

    It's the same with PUT method

    0 讨论(0)
  • 2021-02-04 04:13

    Another way is to use Curl:

    curl -X DELETE http://host/user/1
    
    0 讨论(0)
提交回复
热议问题