如何在Rails中覆盖Mongoid客户端

问题描述 投票:0回答:1

当我使用GridF保存文件时,我试图覆盖客户端连接和数据库。

我已经找到了Mongoid.override_client方法,但是不确定如何使用此方法。

我已经在默认数据库下面的mongoid.yml文件中添加了一个新客户端:

development:
  clients:
    default:
      #standard default db stuff
    attachDb:
      database: attachments
      hosts: 
          - localhost:27017
      options:
        read:
          mode: :primary_preferred
        truncate_logs: false
        user: username
        password: password
        auth_mech: :scram
        auth_source: authDb

当我运行以下内容时

Mongoid::Clients.clients.each do |name, client|
   puts name
   puts client
end

仅显示我的默认数据库

我还尝试运行Mongoid.override_client(:attachDb),以防万一它起作用,但似乎什么也没做。

如何使新的客户端连接正常工作?

ruby-on-rails mongoid
1个回答
0
投票

当您调用Mongoid.override_client(:attachDb)时,所有对数据库的查询和命令都将连接到您在此线程中已重写的客户端。喜欢:

User.where.first() # return first User in default db.
Mongoid.override_client(:attachDb)
User.where.first() # return first User in attachDb db.
© www.soinside.com 2019 - 2024. All rights reserved.