使用Rails 4.1.1,我创建了一个项目。搞定了,跑了,现在我想和我的研究开发团队分享。当然,.gitignore会隐藏源代码控制中的secrets.yml
文件,但是他们的版本在没有自己版本的secrets.yml
文件的情况下无法运行,会出现以下错误:
处理请求时出现意外错误:发现错误
中设置此值secret_key_base
'环境,在`config / secrets.yml
答案 0 :(得分:3)
由于您应该避免在源代码管理中存储私钥,我建议您将 config / secrets.sample.yml 添加到包含 secrets模板的存储库 em>喜欢:
development:
secret_key_base:
some_random_key:
test:
secret_key_base:
some_random_key:
production:
secret_key_base: <%= ENV["SECRET_KEY_BASE"] %>
secret_key_base: <%= ENV["SOME_RANDOM_KEY"] %>
然后你只需要给他们提供一个安全的方式(语音,纸片等)的价值。
有一篇有趣的博客文章,您可以阅读here有关如何部署应用程序的ENV变量的信息。
答案 1 :(得分:1)
您不需要共享secrets.yml密钥,您可以使用以下rake命令实际生成新的密钥:
rake secret
那应该输出一个128位的伪随机十六进制值,类似于:
b00dbff430b2c5596d10b3434ecd8a25515db481dccf818869a21d0c276ad159f00680aac38957ad57a73c9254754b32c42ef4fe2f76ee48d6e4ad8d4dc6a203
让每个研究开发团队成员为secrets.yml文件中的每个secret_key_base
运行该命令。
如果是针对生产环境,则您需要将从rake secret
获取的值设置为环境变量。