ruby - 如何在 ruby​​ irb 上找到 ENV ['RACK_ENV' ]?

标签 ruby heroku openshift rack

我的 gemfile 中有以下行。

if defined? ENV['RACK_ENV'] == 'production' then gem 'pg' else gem 'sqlite3' end

关于 Heroku它使用 pg gem,因为它看到它正在生产中,在我的电脑上它使用 sqlite gem 。然而在Openshift ,它说找不到 pg gem,所以它无法运行应用程序,所以很明显 ENV['RACK_ENV']不认为它在生产中,而是在开发中。

如何找出 ENV['RACK_ENV'] 的变量?在 irb、rack 或 ruby​​ 命令行上?

最佳答案

在 Heroku 上 RACK_ENV为您设置了环境变量,在您的本地计算机(或显然是 Openshift)上不会出现这种情况。在 Ruby 中读取未设置的环境变量返回 nil .

$ export ANY_ENV=foo
$ irb
irb(main):001:0> puts ENV['ANY_ENV']
foo
=> nil
irb(main):002:0> puts ENV['ANOTHER_ENV']

=> nil
irb(main):003:0> ENV['ANOTHER_ENV'].nil?
=> true

在 Openshift 上,您需要设置 RACK_ENVproduction通过rhc env set RACK_ENV=production -a YOUR_APP_NAME

它们提供了三种查看环境变量的方式:

  • App_Name/.openshift/action_hooks/build 添加导出语句文件,然后运行 ​​git push .这些变量列在 Git 输出中并以 remote: declare -x 开头.
  • 使用 SSH 访问应用程序并运行 env在 shell 提示符下执行命令。
  • 使用rhc env list -a <appname> command

参见 https://developers.openshift.com/en/managing-environment-variables.html有关在 Openshift 上设置环境变量的更多详细信息。

关于ruby - 如何在 ruby​​ irb 上找到 ENV ['RACK_ENV' ]?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31626146/

相关文章:

ruby-on-rails - 无法在 Ubuntu 16.04 上运行 Puma upstart 脚本

ruby - elasticsearch 中的数组字段只返回匹配的元素

ruby - 如何获取任意 ruby​​ 类的完整文件路径?

c - 范恩错误 20 : The number of output neurons in the ann (4196752) and data (1) don't match Epochs

python-3.x - heroku python datetime不包括fromisoformat

ruby-on-rails - heroku postgres 转储 - 无法在本地工作

ruby-on-rails - 需要将 WP 博客与 Heroku 上的 Rails 应用程序链接起来

java - 如何启动 WildFly8 服务器(在 OpenShift 中)

mysql - OpenShift、JBoss EAP 6 - 如何重新添加 MySQL 驱动程序

web-services - 如何找到我的密码?