Ruby on rails 如何以编程方式获取Mongoid正在写入的当前数据库?
我正在使用Mongoid与多个数据库交谈。使用Mongoid和rails覆盖_数据库(“数据库_名称”)。如何以编程方式查找当前数据库 会话上的Mongoid文档:定义覆盖数据库的方法,但不定义获取当前正在使用的数据库的方法。明白了Ruby on rails 如何以编程方式获取Mongoid正在写入的当前数据库?,ruby-on-rails,mongodb,mongoid,mongodb-ruby,mongoid3,Ruby On Rails,Mongodb,Mongoid,Mongodb Ruby,Mongoid3,我正在使用Mongoid与多个数据库交谈。使用Mongoid和rails覆盖_数据库(“数据库_名称”)。如何以编程方式查找当前数据库 会话上的Mongoid文档:定义覆盖数据库的方法,但不定义获取当前正在使用的数据库的方法。明白了 Mongoid.default_session.options[:database] 如果您想要覆盖的数据库,实际上需要使用 Mongoid::Threaded.database_override 新的方法是 Mongoid::Config.clients["d
Mongoid.default_session.options[:database]
如果您想要覆盖的数据库,实际上需要使用
Mongoid::Threaded.database_override
新的方法是
Mongoid::Config.clients["default"]["database"]
你也可以看看
Mongoid::Config.clients
查看其他可用内容。运行Mongoid.default\u session.options[:database]时会出现默认\u session无效的错误。它现在是默认的_客户端。这真是太棒了 在不使用[:database]的情况下运行它,以获取所有选项并查看数据库的完整配置 Mongoid::Config.clients[“default”][“database”]假设您使用的是而不是Mongoid.yml的uri版本。在任何情况下你都会得到零分。使用Mongoid::Config.clients[“default”]获取当前数据库的完整配置,或使用Mongoid::Config.clients[“default”]['uri']获取完整的uri 从最后一个端口号/后的URI中选择数据库名称。使用分片配置的Mongoid版本7.0.5可能有几个
Mongoid.client(:default).database
现在是通过符号:
Mongoid.default\u session.options[:database]
更正了它。谢谢。警告,这不是线程安全的!!-如果要在应用程序控制器中的before_筛选器中切换数据库,这将返回应用程序中其他线程中使用的数据库名称。这似乎已被弃用。它现在是Mongoid.default_client.options[:database]
您也可以使用符号<代码>Mongoid::Config.clients[:默认][:数据库]