Rails 3中子域主机路由上的子域 - 命中路由,而不是根

时间:2013-06-01 22:52:01

标签: ruby-on-rails routing subdomain

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

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

问题是我的用户被赋予了自定义子域名,因此someuser.myapp.com指向用户#landing。我通过这条路线在当地实现了这个目标:

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

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

我正在认真地画一个空白。

1 个答案:

答案 0 :(得分: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