0

目前,我有 myapp.herokuapp.com 作为我正在从事的一个小项目的暂存。完成后,它将在 myapp.com 下运行。

当我在本地运行它时,我正在使用 lvh.me:3000 进行测试。这对于我遇到的问题很有效,但是由于这个登台环境位于子域下,我遇到了路由问题。

问题是我的用户被赋予了一个自定义子域,因此 someuser.myapp.com 指向 users#landing。我通过这条路线在本地完成此操作:

  match '', to: 'users#landing', constraints: lambda { |r| r.subdomain.present? && r.subdomain != 'www' }

我的问题是,当我访问 myapp.herokuapp.com 时,我最终会点击 users#landing 而不是我的 root。

我是认真地画一个空白。

4

1 回答 1

1

完全忽略了我在做什么...

我结束了,

if request.subdomain == 'myapp'
  redirect_to root_url
else

这解决了这个问题。我确信有更好的方法来做到这一点。

编辑:此外,我在 application_controller.rb 添加了 default_url_options

  def default_url_options
    if Rails.env.production?
      {:host => 'myapp.herokuapp.com'}
    else
      {:host => 'lvh.me'}
    end
  end
于 2013-06-01T22:56:23.817 回答