ruby on rails:heroku:缺少`secret_key_base`用于'生产'环境

时间:2016-07-03 07:49:36

标签: ruby-on-rails ruby ruby-on-rails-4 heroku environment-variables

我将密钥添加到heroku config var中,但我仍然收到错误。

这是正确的方法吗?我忽略了secrets.yml,因为我从其他消息来源读到,将此推向公众不是一个好主意。

在heroku配置var:

[key] SECRET_KEY_BASE
[value] 3280570382948240938

secrets.yml

production:
  secret_key_base: <%= ENV["SECRET_KEY_BASE"] %>

我还有什么问题?

此外,如果我将我的密钥放入heroku的配置变量中,那么其他开发人员也不会看到这个吗?那么,那还不公开吗?我总是想知道这个概念。

3 个答案:

答案 0 :(得分:6)

您可以使用heroku config

设置环境变量

首先在终端

上运行以下命令生成密钥
rake secret

现在在下面的命令

上使用该键
heroku config:set SECRET_KEY_BASE='put here new generated key'

您可以参考此链接以获得更多参考资料

https://devcenter.heroku.com/articles/config-vars

答案 1 :(得分:3)

我今天遇到了同样的问题,但对我来说解决方案有点不同。我意识到在我的本地环境中,我一直在使用:

Rails.application.secrets.secret_key_base

但对于 Heroku,请改为使用:

Rails.application.secret_key_base

^这也适用于我的本地环境。不确定额外的 .secrets 是做什么用的。

答案 2 :(得分:0)

这是一种使用heroku设置密钥库的简单方法:

heroku config:set SECRET_KEY_BASE=$(rake secret)

您可以通过heroku config:get SECRET_KEY_BASE

看到它

并检查是否用Rails.application.secret_key_base(例如heroku run rails console)将其捡起