2011-11-30 151 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