Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在ruby irb上找到ENV[';RACK#u ENV';]?_Ruby_Heroku_Openshift_Rack - Fatal编程技术网

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