如何在ruby irb上找到ENV[';RACK#u ENV';]?
我的文件中有下面一行如何在ruby irb上找到ENV[';RACK#u ENV';]?,ruby,heroku,openshift,rack,Ruby,Heroku,Openshift,Rack,我的文件中有下面一行 if defined? ENV['RACK_ENV'] == 'production' then gem 'pg' else gem 'sqlite3' end 在我的电脑上,它使用的是pggem,因为它认为它正在生产中,而在我的电脑上,它使用的是sqlitegem。然而,它说pg gem找不到,因此无法运行应用程序,因此显然ENV['RACK_ENV']认为它不在生产中,可能正在开发中 如何在irb、RACK或ruby命令行上找到ENV['RACK\u ENV']。在H
if defined? ENV['RACK_ENV'] == 'production' then gem 'pg' else gem 'sqlite3' end
在我的电脑上,它使用的是pg
gem,因为它认为它正在生产中,而在我的电脑上,它使用的是sqlite
gem。然而,它说pg gem找不到,因此无法运行应用程序,因此显然ENV['RACK_ENV']
认为它不在生产中,可能正在开发中
如何在irb、RACK或ruby命令行上找到
ENV['RACK\u ENV']
。在Heroku上,RACK\u 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上,您需要通过rhc ENV set RACK\u ENV=production-a您的应用程序名称将RACK\u ENV
设置为production
它们提供了三种查看环境变量的方式:
- 将导出语句添加到
App\u Name/.openshift/action\u hooks/build
文件中,然后运行git push
。变量列在Git输出中,并以remote:declare-x
开头
- 使用SSH访问应用程序,并在shell提示符下运行
env
命令
- 有关在Openshift上设置环境变量的更多详细信息,请使用
rhc env list-a。在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上,您需要通过rhc ENV set RACK\u ENV=production-a您的应用程序名称将RACK\u ENV
设置为production
它们提供了三种查看环境变量的方式:
- 将导出语句添加到
App\u Name/.openshift/action\u hooks/build
文件中,然后运行git push
。变量列在Git输出中,并以remote:declare-x
开头
- 使用SSH访问应用程序,并在shell提示符下运行
env
命令
- 有关在Openshift上设置环境变量的更多详细信息,请使用
rhc env list-a