我有一个 Rails 3.1 多租户应用程序,其域名为 mydomain.com。有了这个,我想创建以下路线,但继续前进
www.mydomain.com 和 mydomain.com 的默认根目录应转到名为 home 的控制器,或 *.mydomain.com 的类似默认根目录(www 除外)应转到 *.mydomain.com 的会话/新路由默认根目录(除了 www)登录时将转到仪表板控制器或类似的
任何人都可以帮助实现这一目标吗?
我有一个 Rails 3.1 多租户应用程序,其域名为 mydomain.com。有了这个,我想创建以下路线,但继续前进
www.mydomain.com 和 mydomain.com 的默认根目录应转到名为 home 的控制器,或 *.mydomain.com 的类似默认根目录(www 除外)应转到 *.mydomain.com 的会话/新路由默认根目录(除了 www)登录时将转到仪表板控制器或类似的
任何人都可以帮助实现这一目标吗?
这与您正在寻找的内容非常相似:http: //maxresponsemedia.com/rails/setting-up-user-subdomains-in-rails-3/。
编辑
看来链接现在已经失效了(这就是为什么我们应该发布的不仅仅是链接!),但我能够在 WayBackMachine 中找到它。这是它拥有的代码示例。
首先,我们为子域和根域定义了几个约束:
# /lib/domains.rb
class Subdomain
def self.matches?(request)
request.subdomain.present? && request.subdomain != "www" && request.subdomain != ""
end
end
class RootDomain
@subdomains = ["www"]
def self.matches?(request)
@subdomains.include?(request.subdomain) || request.subdomain.blank?
end
end
然后,在我们的 routes.rb 中,我们将子域定向到网站控制器,但是对与主站点相关的域的任何请求都会发送到为应用程序配置的静态页面。
# config/routes.rb
# a bunch of other routes...
# requiring the /lib/domains.rb file we created
require 'domains'
constraints(Subdomain) do
match '/' => 'websites#show'
end
constraints(RootDomain) do
match '/contact_us', :to => 'static_pages#contact'
match '/about', :to => 'static_pages#about'
match '/help', :to => 'static_pages#help'
match '/news', :to => 'static_pages#news'
match '/admin', :to => 'admin#index'
end