【问题标题】:How to use dotenv to add Environment Variables to ruby on rails application?如何使用 dotenv 将环境变量添加到 ruby​​ on rails 应用程序?
【发布时间】:2015-03-19 17:27:09
【问题描述】:

我想设置在secrets.yml中使用的SECRET_KEY_BASE

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

我尝试在.profile中添加如下代码:

export SECRET_KEY_BASE=cfbc3b45d65db30b853cdc0557e0be85609cf75974ebb706f46a00abe09eee9454b3d311e48ee4157e1e5d5e3de5b8d2a329dff13871837cbaeae6af2bc2e42f

效果很好,但这仍然不是那么好,我知道dotenv可以将其添加到应用程序根路径下的.env文件中,所以我添加了

gem 'dotenv-rails'
gem 'dotenv-deployment'

然后我将如下代码添加到 Rails 应用程序根路径中的 .env.production 中:

SECRET_KEY_BASE=cfbc3b45d65db30b853cdc0557e0be85609cf75974ebb706f46a00abe09eee9454b3d311e48ee4157e1e5d5e3de5b8d2a329dff13871837cbaeae6af2bc2e42f

但是为什么这不起作用呢?

【问题讨论】:

  • 您是否也在填充.env 文件?
  • @alf 不,我需要这个吗?
  • 我自己没有使用过,但是通过查看源代码似乎需要.env 文件,它应该包含可以共享并提交给repo和工作的默认值对于开发环境。然后覆盖.env.#{environment} 中的这些值。

标签: ruby-on-rails ruby environment-variables production-environment


【解决方案1】:

在 Rails 4.1 中,config/secrets.yml 是应用程序的 secret_key_base 的新默认位置。但是,它也可以用于存储其他秘密变量,使其成为环境特定令牌、API 密钥等的好地方。

用您要存储的秘密填写文件,例如:

development:
  secret_key_base: your_development_secret
  api_key: some_key
production:
  secret_key_base: your_production_secret
  twitter_consumer_key: production_twitter_key
  twitter_consumer_secret: production_twitter_secret
  twitter_oauth_token: production_oauth_token
  twitter_oauth_token_secret: production_oauth_secret

在您的代码中,您可以使用 Rails.application.secrets 访问这些秘密:

Twitter.configure do |config|
  config.consumer_key       = Rails.application.secrets.twitter_consumer_key
  config.consumer_secret    = Rails.application.secrets.twitter_consumer_secret
  config.oauth_token        = Rails.application.secrets.twitter_oauth_token
  config.oauth_token_secret = Rails.application.secrets.twitter_oauth_token_secret
end

默认情况下,secrets.yml 将被检入 git,将其添加到您的 .gitignore 文件中。

【讨论】:

    猜你喜欢
    • 2012-01-09
    • 2017-10-11
    • 2011-09-08
    • 2023-02-13
    • 2014-09-16
    • 2022-11-10
    • 2017-12-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多