在Rails服务器上测试MongoID,并且对如何/在何处设置环境变量感到困惑.
config / mongoid.yml默认模板提供:
defaults: &defaults host: localhost ... # set these environment variables on your prod server production: host: <%= ENV['MONGOID_HOST'] %> port: <%= ENV['MONGOID_PORT'] %> username: <%= ENV['MONGOID_USERNAME'] %> password: <%= ENV['MONGOID_PASSWORD'] %> database: <%= ENV['MONGOID_DATABASE'] %>
解决方法
ENV哈希值将从rails进程启动时的系统环境中获得.
这些可以在启动服务器或程序之前在命令行中进行设置.例如在bash中:
export MONGOID_USERNAME='username'
这些仅适用于您的shell的生命周期,除非您将其添加到您的配置文件中,但是您的Web服务器很可能不会使用该配置文件,因此它仅对本地开发有用.
也可以设置它们,例如,在Apache中使用SetEnv.例如:
<Location /app > SetEnv MONGOID_HOST 'localhost' SetEnv MONGOID_PORT '8883' SetEnv MONGOID_USERNAME 'username' </Location>
这可以在任何地方SetEnv在你的apache配置是合法的,这是你的应用程序所处的相同的上下文.
关于你对最佳做法的评论,有些人在源代码控件中放置了一个例子的yml配置文件,并从源代码控制中忽略了config / *.yml文件.当克隆资料库时,将示例复制和更正为正确的值是设置的一部分,例如运行rake tmp:create以创建tmp文件夹结构.