У меня есть сценарий, когда я делаю пост в Sinatra через Typhoeus в app.rb. Это выглядит так:
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
Когда я отправляю в «отправить данные», Typhoeus успешно отправляет сообщение и подталкивает пользователя к просмотру созданной записи (http://localhost:4000/renders/34634646464), которая является приложением rails.
Проблема в том, что пользователь никогда не перенаправляется с /send-data, поэтому, если вы обновите страницу, он попытается снова опубликовать сообщение. Я думаю, это имеет смысл, но мне действительно нужно, чтобы пользователь был перенаправлен на конечное (url) местоположение записи. Другими словами, новую запись можно увидеть, но этот метод перенаправления фактически не удаляет пользователя из приложения sinatra.
Что было бы лучшим способом справиться с этим? Единственное, что я могу придумать, это не использовать «followlocation», а вместо этого использовать действие контроллера /send-data для перенаправления после получения местоположения ответа от Typhoeus.