微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ruby-on-rails – 设置用于Rails的环境变量(ENV)

在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'] %>

我的问题是这些设置在Rails的某个地方?还是系统级?如果是这样/如何设置,以便没有用户帐户需要登录才能使其有效?

解决方法

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文件夹结构.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐