如何获取路线的完整URL?

时间:2016-02-09 20:07:59

标签: ruby sinatra

我有一个Sinatra template file,它向route /en/signup发送POST请求(en是区域设置)。

我需要从en中提取/en/signup。我尝试在以下代码中使用request.path,但仅包含/signup,而不是/en/signup。日志文件显示已调用/en/signup

我可以在路线post '/signup'中使用哪种构造来获取/en/signup

5 个答案:

答案 0 :(得分:1)

醒来,Neo。

来自route档案:

before '/:locale/*' do
  I18n.locale       =       params[:locale]
  request.path_info = '/' + params[:splat ][0]
end

答案 1 :(得分:1)

这解决了我的问题:redirect to('/' + I18n.locale.to_s + '/signup-success')

答案 2 :(得分:0)

如果你可以使用java:

var url = document.URL;
var pieces = url.split("/");

然后简单地分开你需要的地方和时间。变量pieces是一个数组。要进一步拆分使用pieces = pieces[1(或其他)].split("/(或其他");

我希望这有帮助!

答案 3 :(得分:0)

你好先生,如果你使用PHP尝试下面的代码。它将获取url的完整路径,例如/ example / en / signup。

$ _ SERVER [ 'REQUEST_URI']

答案 4 :(得分:0)

另外你可以包括http主机(localhost)试试下面的代码

$ output =“http:// $ _ SERVER [HTTP_HOST] $ _SERVER [REQUEST_URI]”;

echo $ output;