gpt4 book ai didi

ruby-on-rails - 设置环境变量 (ENV) 以在 Rails 中使用

转载 作者:行者123 更新时间:2023-12-03 22:29:06 26 4
gpt4 key购买 nike

在 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>

这可能是您的 apache 配置中 SetEnv 合法的任何地方,这与您的应用程序所在的上下文相同。

关于你对最佳实践的评论,有些人在源代码管理中放了一个示例 yml 配置文件,而忽略了 config/*.yml来自源代码管理的文件。克隆存储库时,将示例复制并更正为正确的值是设置的一部分,例如运行 rake tmp:create 以创建 tmp 文件夹结构。

关于ruby-on-rails - 设置环境变量 (ENV) 以在 Rails 中使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4973750/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com