Rails 3:每次我想找到什么东西,我都需要连接到MongoDB吗?

时间:2011-04-28 14:02:23

标签: ruby-on-rails-3 mongodb

每次我需要从MongoDB获取内容时我都会连接到它。有没有办法只能连接一次(比如全局变量)并在所有查找和操作中使用该变量?

由于

1 个答案:

答案 0 :(得分:0)

你自己已经做了很多事情。我首选的方法是在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方法并使用它。