Не удалось войти в URL-адрес арендатора в rails + Apartment

Когда я использую драгоценный камень Apartment для многопользовательского приложения, я сталкиваюсь с проблемой, из-за которой иногда я могу войти в систему, но иногда я не могу войти в систему, это дает ошибку 500 при запросе на вход и дает арендатору, не найденному в журналах рельсов. Мой код переключения арендатора похож на

url : https://tenant_xyz.example.com

Я переключаю арендатора, используя отдельный метод

def self.switch_tenant(tenant_name)
   Apartment::Tenant.switch!(tenant_name)
end

любое решение? заранее спасибо


person Patil    schedule 11.02.2021    source источник


Ответы (1)


@Patil Не используйте промежуточное ПО вашего собственного метода, которое делает эту работу за нас. когда вы нажимаете любой URL-адрес с поддоменом, он переключается на этот метод выполнения базы данных и снова сбрасывается на основную базу данных

Добавьте код ниже в apprication.rb file

Rails.application.config.middleware.use Apartment::Elevators::Generic, lambda { |request|
_host = request.host.split('.').first
if ExcludedSubdomains.subdomains.include?(_host)
   Rails.configuration.database_configuration[Rails.env]["database"]
else
  _host
end
}
person Gaurav Patil    schedule 12.02.2021
comment
В моем случае мне нужно переключиться на основную базу данных, если субдомен отсутствует, поэтому я добавил общие лифты. - person Gaurav Patil; 12.02.2021
comment
Спасибо @Gaurav Patil, я попробую это - person Patil; 12.02.2021
comment
также вам нужно добавить ту же конфигурацию в application.rb file - person Gaurav Patil; 12.02.2021
comment
Это работает для меня, спасибо - person Patil; 12.02.2021