2011-11-30 158 views
2

我想在我的代码中使用(在视图以及)变量一样:Ruby on Rails的使用环境变量

ENV['SERVER_URL1'] 

,并希望他们是缺乏自信的环境(PROD,开发,测试)

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

我试着在应用程序的不同部分(application.rb中,development.rb)

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

设置,但它似乎没有工作。

+0

参见[这个问题](http://stackoverflow.com/questions/4800028/rails-3-setting-custom-environment-variables)。你真的需要他们成为环境变量吗? –

+0

嗯,我希望这个变量对于本地dev和prod heroku的部署不同,在heroku上我可以使用config添加ENV变量:add,但是我不知道如何在我的本地开发环境中完成这个任务。 – WHITECOLOR

+3

对,所以你应该检查初始化程序中的环境,并进行适当的设置。 –

回答

0

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

下面是从4.1 release notes

添加到该文件中的秘密是通过Rails.application.secrets访问的摘录。例如,下面的配置/ 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