登录/退出路径和子域后的Rails和设计

时间:2016-09-23 21:50:58

标签: ruby-on-rails ruby heroku devise

我有一个制作应用程序以及一个临时应用程序。对于这个问题,让我们假设如下:

  1. Production = foo.com
  2. Staging = staging.foo.com
  3. 我的应用的每个用户也都有自己的子域名。实施例

    1. Production = user.foo.com
    2. Staging = user.staging.foo.com
    3. 将我的应用程序部署到heroku后,我从'staging.foo.com/login'登录,之后设计将我重定向到'user.foo.com'。我希望它重定向到'user.staging.foo.com',因为我使用了来自该域的URL。由于我被重定向到一个不正确的域,浏览器向我显示一条错误,指出服务器不可用。

      以下是我的一些代码:

      application_controller.rb

      ...
      def after_sign_in_path_for(resource)
        authenticated_root_url( subdomain: 'user' )
      end
      ...
      

      配置/环境/ staging.rb

      ...
      config.action_controller.default_url_options = { host: 'staging.foo.com' }
      ...
      

      配置/初始化/ session_store.rb

      ...
      Rails.application.config.session_store :cookie_store, key: '_foo_session', domain: "staging.foo.com" , tld_length: 3
      ...
      

      如果我在登录后手动输入'user.staging.foo.com'网址,我可以看到正确的根页面。关于我缺少什么的任何想法?

1 个答案:

答案 0 :(得分:1)

改变这个:

config.action_controller.default_url_options = { host: 'staging.foo.com' }

对此:

config.action_controller.default_url_options = { domain: 'staging.foo.com' }