2011-09-16 9 views
3

こんにちはフォーム 'put'メソッドはフォームからsinatraにデータを送信するために使用されます。putメソッドはapp.rbで定義されていますputメソッドは2つを表示するerbファイルを呼び出します値。sinatra putメソッドが動作していません

でも何も表示されていない可能性があります。

<form name="biodata" action="form" method="put" onsubmit="validateForm()"> 
code 
</form> 

put '/form' do 

@name = params[:FirstName] 
@last = params[:LastName] 

erb :formact 
end 

フォームは

答えて

3

私はPUTは、フォーム送信のための有効な方法ではないと思いますありがとうございました。 HTTPサーバーのログを確認して、要求が実際にPUT要求として送信されているかどうかを確認します。ブラウザは、デフォルトであるGETとして送信している可能性があります。

とにかく、おそらく代わりにPOSTを使用してください。

+0

yar ....ありがとう – karthi

9

ブラウザから直接PUTリクエストを送信することはできませんが、Sinatraのmethod_overrideオプションを使用して偽装することはできますが、デフォルトでは古典的なスタイルでtrueに設定されています。モジュラースタイルを使用している場合は、enable :method_overrideで有効にする必要があります。

というパラメータの着信要求をチェックし、見つかった場合はその呼び出しのリクエストメソッドがパラメータの値に変更されるため、そのHTTPメソッドを使用して呼び出しが行われた残りのアプリケーションに表示されます。

仕事にあなたのput方法を取得する方法は、フォームでPOST方法を使用することですが、名前「_method」と値を持つ非表示入力が含まれるように

<form name="biodata" action="form" method="post" onsubmit="validateForm()"> 
    <input type="hidden" name="_method" value="put" /> 
    code 
</form> 

を「置く」これが同じですこれはRailsで使われている手法です(実際は同じミドルウェア(Rack::MethodOverride)です)。

関連する問題