Я определил несколько типов пользователей, использующих devise (members, 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
Локально работает отлично. Я тестировал с помощью companies.lvh.me:3000 (как предлагает тот же railscast), и он действительно перенаправляет на правильную страницу входа.
Чтобы попытаться заставить его работать на Heroku, я добавил домен, используя heroku domains:add companies.mydomain.com
, и добавил новую запись CNAME на свой DNS-сервер, указывающую на мое приложение Heroku.
Однако, когда я пытаюсь получить доступ к company.mydomain.com, он перенаправляет меня на корневой путь, а не на правильную страницу входа. Я как бы не понимаю, что происходит. Любая помощь будет оценена по достоинству.