Ruby on Rails使用环境变量

时间:2011-11-30 14:08:05

标签: ruby-on-rails

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

ENV['SERVER_URL1'] 

并希望它们在不同的环境(prod,dev,test)中有所不同

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

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

    但似乎没有用。

1 个答案:

答案 0 :(得分: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