相关疑难解决方法(0)

如何解决错误"缺少'secret_key_base`为'生产'环境"(Rails 4.1)

我从头开始创建了一个rails应用程序(rails 4.1),我遇到了一个我无法解决的奇怪问题.

每次我尝试在Heroku上部署我的应用程序时,都会收到错误500:

缺少secret_key_base"生产"环境,请设置此值config/secrets.yml

secret.yml文件包含以下配置:

secret_key_base: <%= ENV["SECRET_KEY_BASE"] %>
Run Code Online (Sandbox Code Playgroud)

在Heroku上,我已经使用"rake secret"命令的结果配置了一个环境变量"SECRET_KEY_BASE".如果我启动"heroku config",我可以看到具有正确名称和值的变量.

为什么我仍然会收到此错误?

非常感谢

ruby ruby-on-rails heroku ruby-on-rails-4

160
推荐指数
4
解决办法
15万
查看次数

Capistrano:我可以为整个上限会话设置一个环境变量吗?

我有一个安装了标准Ruby和Ruby Enterprise的登台服务器.由于标准Ruby拒绝安装一个关键的gem,我需要设置$ PATH以便ruby/gem/rake/etc.总是参考REE版本.由于我使用Capistrano部署到我们的机器上,我需要在Capistrano中进行.

如何设置一次环境变量,并让它在整个Capistrano会话中保持不变?

1)在bashrc文件中很容易,但Capistrano不读取bashrc文件.

2)我会使用Capistrano的

default_environment['PATH'] = 'Whatever'
Run Code Online (Sandbox Code Playgroud)

但是Capistrano使用这些环境变量

env PATH=Whatever command arg ...
Run Code Online (Sandbox Code Playgroud)

每当另一个shell在传递给env的可执行文件中旋转时,它们就会丢失.就像你使用sudo一样.这有点重要:

[holt@Michaela trunk]$ env VAR=hello ruby -e "puts ENV['VAR']"
hello
[holt@Michaela trunk]$ env VAR=hello sudo ruby -e "puts ENV['VAR']"
nil
Run Code Online (Sandbox Code Playgroud)

3)我不能使用bash export命令,因为它们也丢失了--Capistrano似乎为每个命令(或类似的东西)启动了一个新shell,而且它也丢失了:

cap> export MYVAR=12
[establishing connection(s) to xxx.xxx.xxx.xxx]
cap> echo $MYVAR
 ** [out :: xxx.xxx.xxx.xxx] 
cap> 
Run Code Online (Sandbox Code Playgroud)

4)我已经尝试过使用Capistrano的:shell和:pty选项(并结合其他方法),但也没有运气.

那么 - 这样做的正确方法是什么? 这似乎是一个基本的任务,应该有一个非常简单的方法来完成它,但我没有想法.任何人?

提前致谢!

capistrano environment-variables

34
推荐指数
3
解决办法
3万
查看次数