2017-02-08 5 views
0

ポスト:のRails::私は次のようにのlink_toを経由してPOSTリクエストを送信しようと

link_to 'go to transition', transition_diagnosis_path, method: :post

私のDiagnosisControllerにはアクションtransitionがありますが、リンクをクリックするとPOSTとGETの2つのリクエストが送信されます。最初のリクエストは正常に実行されますが、最後のリクエストはshowアクションに未知のパラメータを送信し、エラーを返します。

Started POST "/diagnosis/transition" for 127.0.0.1 at 2017-02-08 17:45:32 -0200 
Processing by DiagnosisController#transition as HTML 
    Parameters: {"authenticity_token"=>"XXXXXXXXXXXXX"} 
Redirected to http://localhost:3000/analysis 
Completed 302 Found in 1126ms (ActiveRecord: 128.0ms) 

Started GET "/diagnosis/transition" for 127.0.0.1 at 2017-02-08 17:45:33 -0200 
Processing by DiagnosisController#show as HTML 
    Parameters: {"id"=>"transition"} 
Completed 500 Internal Server Error in 975ms (ActiveRecord: 24.8ms) 

私は何をすべきか知っていますか?前もって感謝します。


UPDATE:私はこれをしようとすると

、それは通常、診断コントローラでの移行方法で

link_to transition_diagnosis_path, method: :post do 
    button_tag 'go to transition' 
end 
+0

てみ宣言されていることを確認し、また

respond_to do |format| format.js { render :nothing => true } format.html { redirect_to home_url } end 

::次のようになりますあなたの移行方法の一部を削除true'のオプションを、そしてそれを見ます –

+0

@DamianSimonPeter add 'remote:true'は同じ振る舞いを保ちます。リンクをクリックすると、2つの要求が送信され続けます。 –

答えて

0

の作品、アクションの後、あなたにリダイレクトされ、リダイレクトがあります - それは二番目のget要求です。

あなたはリダイレクトを取り除くことができます。ちょうどあなたのルートが `リモート追加

post 'diagnosis/transition', to: 'diagnosis#transition'

+0

'redirect_to analysis_path'を' transition'アクションから削除しても、依然として2つのリクエストを送信し続けます。ルートは上記のように宣言されています。 –

関連する問題