Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/57.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 on rails 如何将环境变量传递给宙斯_Ruby On Rails_Ruby_Zeus - Fatal编程技术网

Ruby on rails 如何将环境变量传递给宙斯

Ruby on rails 如何将环境变量传递给宙斯,ruby-on-rails,ruby,zeus,Ruby On Rails,Ruby,Zeus,当我运行宙斯时: MY_VAR=MY_VALUE zeus start 环境保留该变量,假设我想用MY\u VAR=MAY\u VALUE\u 2运行Rails服务器 我试过: MY_VAR=MAY_VALUE_2 zeus s 但它不起作用。我正在使用oh my zsh,以防这很重要 我该怎么做呢?不知道您是否还需要帮助,但是如果您希望能够将环境变量存储在文件中,您可以使用由zeus init生成的custom_plan.rb。下面是我的文件副本。我正在使用Omniauth,需要我的钥匙可

当我运行宙斯时:

MY_VAR=MY_VALUE zeus start
环境保留该变量,假设我想用
MY\u VAR=MAY\u VALUE\u 2运行Rails服务器

我试过:

MY_VAR=MAY_VALUE_2 zeus s
但它不起作用。我正在使用oh my zsh,以防这很重要


我该怎么做呢?

不知道您是否还需要帮助,但是如果您希望能够将环境变量存储在文件中,您可以使用由
zeus init
生成的
custom_plan.rb
。下面是我的文件副本。我正在使用Omniauth,需要我的钥匙可以轻松更换。您可以通过重载
server
方法来添加仅限服务器的变量,只需知道初始值设定项将在server命令之前运行

require 'zeus/rails'

class CustomPlan < Zeus::Rails

  def boot

    # Omniauth Keys

    # GOOGLE+
    ENV['GPLUS_KEY']       = 'xxx'
    ENV['GPLUS_SECRET']    = 'xxx'

    # FACEBOOK
    ENV['FACEBOOK_KEY']    = 'xxx'
    ENV['FACEBOOK_SECRET'] = 'xxx'

    super # Finish boot
  end
end

Zeus.plan = CustomPlan.new
需要“宙斯/rails”
类CustomPlan
将其传递给宙斯开始


SOME_ENV_VAR=test zeus start

我不确定您是否可以-据我所知,分叉子进程总是要继承父进程的环境,你可以使用zeus.json来设置这些。使用环境变量而不是设置文件的一个要点是,不容易意外地提交GPLUS_SECRET和FACEBOOK_SECRET之类的内容。使用这样的文件会使此问题再次出现。我希望有更好的选择。如果我在custom_plan.rb中添加env变量,那么我的zeus start命令就会失败。在zeusstart命令的开头添加env变量对我来说很有效。