2011-08-20 58 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