Rails 3: нужно ли мне подключаться к MongoDB каждый раз, когда я хочу что-то найти? - PullRequest
2 голосов
/ 28 апреля 2011

Каждый раз, когда мне нужно получить что-то из MongoDB, я подключаюсь к нему. Есть ли способ, которым я могу подключиться только один раз (как глобальная переменная) и использовать эту переменную во всех находках и действиях?

Спасибо

1 Ответ

0 голосов
/ 28 апреля 2011

Вы в значительной степени прибили это сами. Мой предпочтительный способ сделать это - использовать метод в инициализаторе или классе в каталоге lib, который инициализирует переменную класса, когда она еще не установлена.

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

# config/initializers/mongodb_connection.rb
module CachedMongoDBConnection

  def mongodb_connection
    @@cached_mongodb_connection ||= Mongo::Connection.new.db('my_database_name')
  end

end

include CachedMongoDBConnection

Теперь в ваших контроллерах / моделях и т. Д. Вы можете вызывать метод mongodb_connection и работать с ним.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...