Ответ 1
Получил!
Mongoid.default_session.options[:database]
Я говорю о нескольких базах данных, используя Mongoid.override_database ("database_name"), используя Mongoid с рельсами. Как найти текущую базу данных программно?
Mongoid документы по сессиям: http://mongoid.org/en/moped/docs/driver.html определяют методы для переопределения базы данных, но не определяют способ использования текущей базы данных.
Получил!
Mongoid.default_session.options[:database]
Новый способ получить это
Mongoid::Config.clients["default"]["database"]
Вы также можете просто взглянуть на
Mongoid::Config.clients
чтобы узнать, что еще доступно.
Если вам нужна переопределенная база данных, вам действительно нужно использовать
Mongoid::Threaded.database_override
Запуск Mongoid.default_session.options [: database] выдает ошибку, что default_session недействителен. Теперь это default_client. Это работает чудесно.
Запустите его без [: database], чтобы получить все опции и увидеть полную конфигурацию вашей базы данных.
Mongoid :: Config.clients ["default"] ["database"] предполагает, что вы НЕ используете версию uri mongoid.yml. Вы получите ноль во всех случаях. Используйте Mongoid :: Config.clients ["default"], чтобы получить полную конфигурацию текущей базы данных, или Mongoid :: Config.clients ["default"] ['uri'], чтобы получить только полный URI.
Выберите имя базы данных из URI после последнего номера порта /. Может быть несколько, если используется конфигурация