我已经使用设计定义了几种类型的用户(成员、company_users 等),并且我想为每种类型的用户的登录页面使用不同的子域。
为了实现子域的匹配并重定向到适当的操作,我参考了这个 railscast 。我的routes.rb
文件如下所示:
devise_for :company_users, :controllers => { :registrations => 'company_users/registrations', :sessions => 'company_users/sessions' }
devise_scope :company_user do
constraints Subdomain do
match '/' => 'company_users/sessions#new'
end
end
还有我的lib/subdomain.rb
文件:
class Subdomain
def self.matches?(request)
request.subdomain.present? and request.subdomain =~ /\Acompanies\z/
end
end
在本地,它完美运行。我已经使用 company.lvh.me:3000 进行了测试(正如相同的 railscast 建议的那样),它确实重定向到正确的登录页面。
为了尝试让它在 Heroku 上运行,我添加了域,使用heroku domains:add companies.mydomain.com
,并在我的 DNS 服务器上添加了一条新的 CNAME 记录,指向我的 Heroku 应用程序。
但是,当我尝试访问 company.mydomain.com 时,它会将我重定向到根路径,而不是正确的登录页面。我有点不知道发生了什么。任何帮助将不胜感激。