app.rb の Typhoeus 経由で Sinatra に投稿するシナリオがあります。次のようになります。
post "/send-data" do
...
request = Typhoeus::Request.new("http://localhost:4000/renders",
:method => :post,
:headers => { :Accept => "text/html" },
:followlocation => true,
:timeout => 100, # milliseconds
:params => params )
# Run the request via Hydra.
hydra = Typhoeus::Hydra.new
hydra.queue(request)
hydra.run
...
end
「send-data」に投稿すると、Typhoeus は正常に投稿し、作成されたレコード (http://localhost:4000/renders/34634646464) のビューにユーザーをプッシュします。これは Rails アプリです。
問題は、ユーザーが /send-data からリダイレクトされないことです。そのため、ページを更新すると、再度投稿を試みます。これは理にかなっていると思いますが、ユーザーをレコードの最終 (url) の場所にリダイレクトする必要があります。言い換えると、新しいレコードが表示されますが、このリダイレクト方法は実際にユーザーを sinatra アプリから移動させません。
これを処理する最良の方法は何ですか?頭の中で思いつく唯一の方法は、「followlocation」を使用せず、Typhoeus からの応答場所を取得した後に /send-data コントローラー アクションにリダイレクトさせることです。