我在使用Mongoid和rails一起使用Mongoid.override_database(「database_name」)與多個數據庫通信。如何以編程方式查找當前數據庫?如何以編程方式獲取Mongoid正在寫入的當前數據庫?
會話中的Mongoid文檔:http://mongoid.org/en/moped/docs/driver.html定義了重寫數據庫的方法,但沒有定義獲取當前數據庫的方法。
我在使用Mongoid和rails一起使用Mongoid.override_database(「database_name」)與多個數據庫通信。如何以編程方式查找當前數據庫?如何以編程方式獲取Mongoid正在寫入的當前數據庫?
會話中的Mongoid文檔:http://mongoid.org/en/moped/docs/driver.html定義了重寫數據庫的方法,但沒有定義獲取當前數據庫的方法。
Got it!
Mongoid.default_session.options[:database]
如果你想overrided數據庫您真正需要使用
Mongoid::Threaded.database_override
新的方式來獲得,這是
Mongoid::Config.clients["default"]["database"]
你也可以看看
Mongoid::Config.clients
看看還有什麼是AV ailable。
您也可以使用符號。 'Mongoid :: Config.clients [:默認] [:數據庫]' – Jason
正在運行Mongoid.default_session.options [:database]給出了一個default_session無效的錯誤。它現在是default_client。這很奇妙。
在沒有[:database]的情況下運行它以獲取所有選項並查看數據庫的完整配置。
現在是通過符號:'Mongoid.default_session.options [:database]' – stef
更正了它。謝謝。 –
警告,這不是線程安全的! - 如果要在應用程序控制器的before_filter中切換數據庫,則會返回應用程序中其他線程中使用的數據庫名稱。 – Hackeron