У меня есть мультитенантное приложение Rails 4, которое использует поддомены со схемами PostgreSQL для «арендатора» приложения. У меня есть поддомен «*», настроенный в Heroku и Cloudflare, и сайт загружается, но он продолжает «думать», что www является допустимым поддоменом. Из-за этого обычно действующие ссылки (которые работают в разработке) не работают в производственной среде, потому что www.mysite.com/accounts/new и т. Д. Совпадает с asdf.mysite.com/accounts/new. Есть ли способ заставить мое приложение в значительной степени игнорировать www как поддомен? Я бы по-прежнему хотел, чтобы mysite.com перенаправлял на www.mysite.com, но в значительной степени просто установил для субдомена значение false, когда это www?
Чтобы сделать вещи более конкретными, в моем application_controller есть код, который выполняет следующие действия. Обратите внимание на комментарии. В режиме разработки redirect_to root_url (subdomain: false) работает, но в производстве он просто бесконечно перенаправляет и не загружается. Чтобы заставить его загрузиться, я просто визуализирую страницу, но при этом никогда не устанавливает для субдомена значение false.
def load_schema
Apartment::Tenant.switch!('public')
return unless request.subdomain.present?
if current_account
Apartment::Tenant.switch!(current_account.subdomain)
else
redirect_to root_url(subdomain: false) # Works locally, but infinite re-direct in production
#render 'welcome/index' # - Renders the page in production, but nothing else works.
end
end
По сути, в режиме разработки все работает так, как ожидалось, но в производственной среде, похоже, есть некоторые проблемы с DNS, которые необходимо устранить, но я не могу понять, что делать. Есть предположения?