【发布时间】:2013-12-18 14:00:40
【问题描述】:
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?
【问题讨论】:
-
你是如何运行这个任务的? ENV 是 Ruby 的核心内容,因此它应该始终反映您可用的环境变量。
-
$ rake some_task在应用目录中。一些ENV在.env中,我可能需要为Heroku 做$ foreman run rake task。 -
@Narfanator 你应该把这个作为一个实际的答案来回答,这样我就可以投票给你。做
$ foreman run rake some_task是正确答案
标签: ruby-on-rails environment-variables rake-task