Как переопределить mongoid клиент в Rails - PullRequest
0 голосов
/ 14 октября 2019

Я пытаюсь переопределить свое клиентское соединение и базу данных, когда прихожу для сохранения некоторых файлов с помощью GridFs.

Я нашел метод 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) на всякий случай, если она сработала, но, похоже, ничего не делает.

Как я могу заставить работать мое новое клиентское соединение?

1 Ответ

0 голосов
/ 23 октября 2019

Когда вы вызываете 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.
...