如何检查Mongoid的连接

Zer*_*nel 5 database connection mongodb mongoid

Mongoid有类似的方法ActiveRecord::Base.connected?吗?我想检查是否可以访问该连接。

Zer*_*nel 1

我的解决方案:

    def check_mongoid_connection
        mongoid_config = File.read("#{Rails.root}/config/mongoid.yml")
        config = YAML.load(mongoid_config)[Rails.env].symbolize_keys
        host, db_name, user_name, password = config[:host], config[:database], config[:username], config[:password]
        port = config[:port] || Mongo::Connection::DEFAULT_PORT

        db_connection = Mongo::Connection.new(host, port).db(db_name)
        db_connection.authenticate(user_name, password) unless (user_name.nil? || password.nil?)
        db_connection.collection_names
        return { status: :ok }
    rescue Exception => e
        return { status: :error, data: { message: e.to_s } }
    end
Run Code Online (Sandbox Code Playgroud)