2011-08-20 57 views
0

我正在構建一個rails插件來自動化我的團隊部署過程..問題是我找不到訪問teh rails env變量的方法。我有以下幾點:heroku插件,如何訪問像RAILS_ENV這樣的env變量?

config = YAML.load(File.open("#{Dir.getwd}/config/s3.yml"))[RAILS_ENV] 

與錯誤:

in `const_missing_from_s3_library': uninitialized constant Heroku::Command::Jammit::RAILS_ENV (NameError) 

任何人都知道怎麼樣?謝謝

回答

3

你應該使用Rails.env而不是RAILS_ENV與Rails 3及以上。嘗試使用:

config = YAML.load(File.open("#{Dir.getwd}/config/s3.yml"))[Rails.env] 

或者這樣,如果你得到的範圍問題,只有Rails

config = YAML.load(File.open("#{Dir.getwd}/config/s3.yml"))[::Rails.env] 
+0

將在Heroku的工作? – AnApprentice

+1

@AnApprentice:這應該可以在任何Rails 3環境中使用。錯誤消息告訴你,沒有定義'RAILS_ENV'常量,'Rails'類應該可用,因此它應該可以工作。 –

+0

這給了一個錯誤'未初始化的常量Heroku :: Command :: Railgun :: Rails(NameError)'是否有需要讓Rails.env作爲插件在heroku上返回的錯誤?我試過要求'rails/all' – AnApprentice