我正在尝试将应用程序部署到生产中,但我收到以下错误
<RuntimeError: Missing `secret_key_base` for 'production' environment, set this value in `config/secrets.yml`>
我检查了config / secrets.yml文件并看到了这个
production:
secret_key_base: <%= ENV["SECRET_KEY_BASE"] %>
我知道如何生成新密钥,但是我在哪里存储它以便可以通过&#34;&lt;%= ENV [&#34; SECRET_KEY_BASE&#34;]%&gt;& #34;
我目前正在使用PUMA服务器和Windows 7。
答案 0 :(得分:0)
我今天遇到了同样的问题。经过一番挖掘后,我发现了它。
根据this site,您可以通过添加.yml文件来设置自己的环境变量,然后让您的application.rb读取文件。
我在/ config中创建了一个local_env.yml并添加了以下代码。
SECRET_KEY_BASE: your_key
然后在/local/application.rb中添加以下代码。
class Application < Rails::Application
.
.
.
config.before_configuration do
env_file = File.join(Rails.root, 'config', 'local_env.yml')
YAML.load(File.open(env_file)).each do |key, value|
ENV[key.to_s] = value
end if File.exists?(env_file)
end
end
您可能希望将local_env.yml添加到.gitignore中,因为它包含您的密钥。
或者如果你觉得懒惰......而不是&lt;%= ENV [“SECRET_KEY_BASE”]%&gt;,只需将你的密钥放在那里,然后.gitignore使用secrets.yml