20

RESTfulSinatraアプリケーションを開発しようとしています。今、私は次のようなもので削除要求に応答する方法を知っています

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

私が興味を持っているのは、そのメソッドをどのように実行するかです。GETの代わりにDELETEを実行するリンクを作成できませんか?

私がこれまでに見つけた唯一の解決策は、jQueryを介してDELETEリクエストを送信することです:jQueryでPUT / DELETEリクエストを送信する方法は?

githubでさまざまなRESTfulSinatraプロジェクトを調べてみましたが、Rubyの知識は、おそらくそれらがどのように実行されているかを知るために限られています。

4

5 に答える 5

28

コードに次の行を入れます。

use Rack::MethodOverride

_methodこれは、パラメータ" "と値""を使用してpostメソッドを解釈するのに役立ちますdelete。その後、あなたは書くことができます

delete '/user/:id' do |id|
于 2011-03-02T15:48:21.160 に答える
16

Railsのやり方に似ていると思います。パラメータ「_method」を「delete」値で定義し、フォームに追加する必要があります。

この特定のパラメータを使用してフォームを POST すると、sinatra で DELETE リクエストが実行されます。

お気に入り :

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

PUTメソッドも同様

于 2011-03-02T11:10:48.600 に答える
4

もう 1 つの方法は、Curl を使用することです。

curl -X DELETE http://host/user/1
于 2011-09-07T07:07:24.153 に答える
0

フロントエンドでjQueryとJSONを使用し、バックエンドでSinatraを使用してこれを行う方法については、「 jQueryでSinatra削除ルートを呼び出す」も参照してください。

于 2012-11-28T03:45:13.397 に答える