Rails中数据库连接的全局变量

时间:2010-07-13 20:27:09

标签: ruby-on-rails-3

我正在运行Rails 3,而且我有几个控制器都执行以下操作:

@db = Mongo::Connection.new.db(MONGOID_CONFIG['database'])

我不希望与数据库建立多个连接,所以自然的事情似乎是将@db包装在我启动应用程序时初始化的一些单例中。我的问题是,怎么做?

我的第一个想法是使用帮助器,但我被告知这些只是建议生成视图的东西,显然视图不应该直接访问数据库。那里还有什么?写一个插件? :)

2 个答案:

答案 0 :(得分:2)

如果您正在使用Mongoid(我假设您可能因为您的常量被命名为MONGOID_CONFIG),您可以使用@db = Mongoid.master.connection来获取连接到主数据库服务器的Mongo :: Connection。

答案 1 :(得分:1)

首先,您可以编写一个帮助程序来放置,例如,在application_controller.rb中,所以对于视图没有问题(好吧,视图帮助程序通常在app / helpers /)中。

否则,您可以编写以下命令并将其放在config / initializers / mongo_db.rb中:

$db = Mongo::Connection.new.db(MONGOID_CONFIG['database'])

该文件将在启动时加载, $ db 表示一个全局变量,因此它可用于整个应用程序(包括视图),顺便说一下,你只能在适当的地方,对吗? ;-P

相关问题