在Rake任务中使用环境变量

时间:2013-03-28 19:06:31

标签: ruby-on-rails environment-variables rake-task

task :some_task, :environment do |t, args|
  puts Rails.env #=> development, production, etc
  puts ENV #=> {}
end

我设置了一些环境变量(通过本地.env,或通过Herokusan通过Heroku Config),例如要使用哪个AWS桶,我想在rake任务中引用它们,但ENV是一个空哈希。由于:environment任务依赖性和Rails.env有一个值,我知道与环境相关的事情已经完成,但我不清楚细节。

那么,如何在Rake任务中使用ENV

1 个答案:

答案 0 :(得分:5)

两种好方法:

使用Heroku的“Foreman”工具。将所有环境变量放入.env

VAR=value

并运行foreman run rake some_task

或者(并且,我推荐这种方式),使用“费加罗”宝石。将你的变量放入config/application.yml

VAR: value

就是这样; rake some_task

我推荐后者,只是因为rake figaro:heroku会按照application.yml

中指定的那样推动你的环境