如何重定向回Sinatra的路线?

时间:2015-10-03 16:55:25

标签: ruby request sinatra

在Sinatra,如何重定向回路线?

require 'sinatra'

get "/A" do
  redirect '/B' 
end

get "/B" do 
  redirect request.referer
end

这是代码,我想" / B"把我带回" / A"。

现在,在浏览器中,在" / C"中,向" / A"发送获取请求。然后我会回到" / C"。原因是:
" request.referer"正在录制" / C",因为重定向在" / A"由服务器启动,它不会被计为目标页面的引用者。

有一种解决方法(放在/ A上):

<script type="text/javascript">window.location = '/B';</script>

(来自:How to redirect web page from a specfic page in Sinatra?

我的问题是如何重定向回服务器端的路由?

1 个答案:

答案 0 :(得分:3)

简单地说redirect back。从the Sinatra README(向下滚动到“浏览器重定向”):

您还可以轻松地重定向回用户来自的网页,重定向回来:

get '/foo' do
  "<a href='/bar'>do something</a>"
end

get '/bar' do
  do_something
  redirect back
end