无法在Heroku上运行的Ruby on Rails 4.1.4应用程序中为生产环境设置secret_key_base

时间:2014-09-24 08:02:36

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

我无法在Heroku上运行的Ruby on Rails 4.1.4应用程序中为生产环境设置secret_key_base

以下是我尝试过的步骤:

  • 运行rake secret并将密钥复制到剪贴板

  • 运行heroku config:set SECRET_KEY_BASE=%SECRET_KEY%

它返回成功,Heroku在网站的仪表板中列出了这个环境变量,但是应用程序仍然认为没有提供密钥:

  

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

为什么呢?我究竟做错了什么?我该如何解决?

提前致谢。

2 个答案:

答案 0 :(得分:1)

config/secrets.yml添加到版本控制并再次部署。您可能需要从.gitignore中删除一行,以便您可以提交该文件。

.gitignore Github为我的Rails应用程序创建了config/secrets.yml


请按照以下步骤操作:

  1. $ heroku config(在您的终端中运行此命令)
  2. SECRET_KEY_BASE
  3. 复制值
  4. 将值粘贴到secrets.yml文件以代替<%= ENV["SECRET_KEY_BASE"] %>(没有任何引用)
  5. <强> e.g

    production:
      secret_key_base: b1de60dd9e00816d0569c5ce3f8dbaa3c8ea4a7606120dc66cXXXXXXXXXXXXXXXXXXXXXX
    
    1. 重新部署
    2. 注意:实际上这不安全,但是如果您只想在生产模式下临时运行您的应用以进行测试或处于紧急状态

      我希望它适合你...

答案 1 :(得分:0)

config/secrets.yml中有什么内容?对于生产,它应包含以下行:

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