【问题标题】:Ruby on Rails use of environment variablesRuby on Rails 环境变量的使用
【发布时间】:2012-01-09 18:17:52
【问题描述】:

我想在我的代码中(也在视图中)使用变量,例如:

ENV['SERVER_URL1'] 

并希望它们在不同的环境(产品、开发、测试)中有所不同

  1. 我应该如何设置它们?
  2. 这是(使用 ENV 变量)为不同环境配置应用程序的正确方法吗?
  3. 关于ENV['SERVER_URL'] - 它是标准变量吗?什么时候可用。

我尝试在应用程序的不同部分设置(application.rb,development.rb)

ENV['SERVER_URL1'] = 'http://localhost:4000/'

但它似乎不起作用。

【问题讨论】:

  • this question。你真的需要它们作为环境变量吗?
  • 嗯,我希望这个变量对于本地开发和产品 heroku 部署有所不同,在 heroku 上我可以使用 config:add 添加 ENV 变量,但我不知道如何在本地完成此任务开发环境。
  • 对,所以你要检查初始化程序中的环境,并进行适当的设置。
  • 我插入到 application.erb: ENV['SERVER_URL1'] = 'localhost:4000/path' 但此值在应用程序中不可用。我在 development.rb 中所做的相同
  • 您阅读我提供的链接了吗?他们不会那样做。这就是为什么我问你是否需要它们专门成为环境变量。

标签: ruby-on-rails


【解决方案1】:

在使用 Rails 4.1+ 时,设置 ENV 变量的新方法和首选方法是使用 config/secrets.yml 文件。

这是4.1 release notes的摘录

添加到这个文件的秘密可以通过 Rails.application.secrets 访问。例如,使用以下 config/secrets.yml:

development:
  secret_key_base: 3b7cd727ee24e8444053437c36cc66c3
  some_api_key: SOMEKEY

Rails.application.secrets.some_api_key 在开发环境中返回 SOMEKEY。

请参阅升级 Ruby on Rails 指南,了解如何迁移现有应用程序以使用此功能。

所以你应该设置:

development:
  SERVER_URL1: http://localhost:4000
production:
  SERVER_URL1: http://my-domain.com

【讨论】:

    猜你喜欢
    • 2017-10-11
    • 2014-09-16
    • 2011-04-03
    • 1970-01-01
    • 2021-11-23
    • 1970-01-01
    • 2015-03-19
    • 2012-09-13
    • 2015-09-28
    相关资源
    最近更新 更多