Rails redirect_to具有子域支持的任意URL

时间:2017-08-18 14:30:43

标签: ruby-on-rails redirect rails-routing

我使用的是Rails 5.1,问题在于:

我需要在登录后将当前用户重定向到他选择的网址,但同时我需要将他带到确切的应用子网域。

例如,

  1. 用户输入myapp.com/users
  2. 用户被重定向到登录屏幕myapp.com/login
  3. 成功登录后,用户应在foo.myapp.com/users
  4. 处获取

    但是,用户被重定向到myapp.com/users而没有子域重定向。

    我设法获得了这条线,但是子域转发似乎无法正常工作:

    subdomain = foo
    redirect_to session[:forwarding_url], subdomain: subdomain
    

    有什么想法吗?感谢

1 个答案:

答案 0 :(得分:0)

redirect_to应该看起来像下面的代码。

注意我们正在使用rails ActionController :: Url,因为您可能需要包含它:

include UrlFor

示例将转到控制器“家”。采取行动' home'和subdomain_params返回的子域。 您可以设置控制器,操作和subdomain_params,无论您喜欢什么。在你的例子中

def subdomain_params
  "foo"
end

redirect_to url_for(controller: 'home', action: "home", subdomain: subdomain_params)