Rails3-子域问题转移到Heroku



我编写了一个应用程序,它使用每个用户帐户的子域来隔离环境。所有这些都很好,除了我有一个问题。我不能让www和"都有一个不同于所有其他子域的根路径。

对于所有帐户子域,我有一个根页面:

root :to => "applications#index"

我需要这是所有子域的根页面,除了"one_answers"www"的空白子域。对于www,我在路由中有这个:

constraints(:subdomain => "www") do
    root :to => "promos#index"
  end

我正在努力的是获得它,所以"也会使用promos#索引作为根路径。如果不是根路径,mywebsite.com会将它们发送到应用程序#索引,这需要登录。这是我不希望用户在第一次访问时看到的内容。

是否有修改此代码以包含mywebsite.com以具有不同的根目录?我试过用"复制代码,但这往往会打乱所有其他子域,不管顺序如何。以下是我的路线文件:

constraints(:subdomain => "www") do
    root :to => "promos#index"
  end  
  root :to => "applications#index"

您可以使用实现"matches?"的对象做一些真正的定制工作。下面,如果您是客户子域,我们将设置应用程序#index,如果您不是,则将您发送到promo#index

在您的路线上:

Yourapp::Application.routes.draw do
  constraints(SubDomain) do
    root :to => "applications#index"
  end
  root :to => "promo#index"
  ...
end

然后是子域匹配器文件:

config/ininitializers/sudomain.rb

class SubDomain
  def self.matches?(request)
    case request.subdomain
    when 'www', '', nil, #admin/api/etc could also go here
      false
    else
      true
    end
  end
end

subdomain.rb也可以生活在lib中(如果它是自动加载的)

相关内容

  • 没有找到相关文章

最新更新