替代环境相关的全局变量

时间:2011-02-02 22:05:25

标签: ruby-on-rails ruby ruby-on-rails-3 mongodb

我的Ruby on Rails项目中有几个地方需要访问依赖Ruby on Rails启动环境的值。

具体来说,它是我需要建立连接的MongoDB数据库的名称。

目前我只有:

MONGO_DB = "database_name"
config/environments/< environment >.rb中的

然后在代码中我可以调用像Mongo::Connection.new.db(MONGO_DB)这样的东西。

有没有全局变量更好的方法吗?只是使用全局变量会以错误的方式使用,但是一旦应用程序启动它们就永远不会改变。

2 个答案:

答案 0 :(得分:2)

您可以将设置包装在类或模块中:

module Settings
   MONGO_DB = 'database_name'
end

然后使用:

访问它
Settings::MONGO_DB

答案 1 :(得分:2)

希望有更好的方法。在 YAML Configuration File 中寻找灵感。

拥有YAML个文件中的所有数据是一种处理多种情况的非常简洁的方法。