Rails:如何在Windows上设置密钥

时间:2017-07-19 01:51:36

标签: ruby-on-rails server puma

我正在尝试将应用程序部署到生产中,但我收到以下错误

<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。

1 个答案:

答案 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