Rails - 如何跨越两个域传递参数?

时间:2013-05-27 10:44:23

标签: ruby-on-rails ruby-on-rails-3

我的应用需要使用两个域名。如何保存出现在其中一个域上的参数,并使用这些参数重定向到另一个域?此外,参数的值将始终在变化。

domain1.com?param1=true

redirects to

domain2.com?param1=true

3 个答案:

答案 0 :(得分:0)

可能最好的选择是处理上游Web服务器上的所有域(如nginx)并将请求代理到一个应用程序,而无需直接在Rails应用程序中处理重定向。

这样的东西
server {
  server_name .mydomain.com;
  rewrite ^ http://www.adifferentdomain.com$request_uri? permanent;
}

如果您仍需要在Rails端执行重定向,则可以使用redirect_to执行此操作(至少如果您始终可以说哪个域是目标域)。

redirect_to root_url(host: "adifferentdomain.com", params: request.parameters)

答案 1 :(得分:0)

这将有所帮助

request.original_fullpath

答案 2 :(得分:0)

感谢大家的帮助。我最后编写了一个动作,只需创建新的URL,并将params作为字符串重定向:

def stripe_redirect
        subdomain = request.subdomain
        if subdomain == 'secure'
            params = request.original_fullpath.split("?").second
            new_url = "http://www.newdomain.com/auth/stripe_connect/callback?" << params
            redirect_to new_url
        end
    end