繁体   English   中英

Rails 3 - 子域问题移至 Heroku

[英]Rails 3 - Subdomain Issue Moving to Heroku

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

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

root :to => "applications#index"

我需要这是所有子域的根页面,除了“”的空白子域,然后是“www”。 对于 www,我在路线上有这个:

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

我正在努力解决的问题,所以“”也将使用 promos#index 作为根路径。 当它不是根路径时,mywebsite.com 将它们发送到应用程序#index,这需要登录。 我不希望用户在第一次访问时看到的东西。

无论如何修改此代码以包含 mywebsite.com 以具有不同的根? 我尝试过使用“”复制代码之类的方法,但这往往会弄乱所有其他子域,无论顺序如何。 以下是我的路线文件中的内容:

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

  root :to => "applications#index"

您可以使用实现“匹配?”的 object 做一些真正的定制的东西。 如果您是客户子域,我们将在下面设置 applications#index,如果您不是客户子域,则将您发送到 promo#index

在您的路线中:

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

然后是子域匹配器文件:

配置/初始化程序/subdomain.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 中(如果它正在自动加载)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM