2011-03-07 12 views
0

これは世界で最も簡単なことですが、POSTリダイレクトは機能しません。レール3、私はredirect_toを正しく使用していませんか?

リモートシステム通常のPOST私の方法「mainhandler」1つの状況で

、別のハンドラにかかわらず、それのPOSTデータ 『』単に、セッション変数を消去することになっている「noaudioの1へのデータパス「(mainhandler ")

通常のハンドラへの" POSTマイルート:

match '/mainhandler' =>"widgets#mainhandler" 

マイコード:

def noaudio 
    puts "**** NOAUDIO" 
    session[:audiofile] = "" 
    redirect_to "/mainhandler" 
end 

def mainhandler 
    puts "**** NEVER GETS HERE FROM NOAUDIO ??" 
end 

リダイレクトのようなものがログ(下)に表示されますが、ハンドラ "mainhandler"は決して実行されません...私はnoaudioハンドラに "puts"を見て、リダイレクトのように見えます。 ..しかし、メインハンドラーは決して実行されません。

**** NOAUDIO 

Started POST "/noaudio" for 1.2.3.4 at 2011-03-07 09:39:22 -0800 
    Processing by WidgetsController#noaudio as HTML 
    Parameters: blah blah blah 
Redirected to http://mydomain.com/mainhandler 
Completed 302 Found in 1ms 

私は間違ってredirect_toを使用していますか?それともPOSTのために動かないのですか? (私はおそらく少なくともGETをまだ見ているだろうが)

+0

AFAICS本当にリダイレクトする必要があります。ブラウザではどうなりますか?答えのために重要ではない、ちょうど、これはなぜPOSTですか?データはありません。これはGETでもかまいませんか? –

+0

はいリモートシステムは常に私のアプリにデータをポストしています... – jpwynn

答えて

3

リダイレクトは確かにPOSTでは機能しません。

あなたは、いくつかの詳細はそのを見てみたいことがあります。

redirect_to using POST in rails

0

あなたが本当にこの仲介を持って、新しいURLにデータを投稿したいしなければならない、あなたができればRuby's Net::HTTPクラスを使用し、データを渡します。

私は二度と考えなければならないと思うし、これが本当にあなたがしたいことであれば尋ねてください。

関連する問題