Rails: 如何根据 windows 设置密钥

Rails: How to set secret key base on windows

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

<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"] %>

我知道如何生成新密钥,但我应该将它存储在哪里以便“<%= ENV["SECRET_KEY_BASE"] %>”可以获取它?

我目前正在使用 PUMA 服务器和 Windows 7。

我今天 运行 遇到了同样的问题。经过一番挖掘后,我想通了。

根据 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 中,因为它包含您的密钥。

或者如果你觉得懒惰....而不是 <%= ENV["SECRET_KEY_BASE"] %>,只需将你的密钥放在那里并 .gitignore secrets.yml