Rake中的“环境”任务是什么?
根据“ 自定义Rake任务 ”:
desc "Pick a random user as the winner" task :winner => :environment do puts "Winner: #{pick(User).name}" end
据我所知, :winner => :environment
意思是“做winner
之前的environment
”。 但是什么是environment
? 我应该什么时候使用它?
我试过rake -T
,但在列表中我找不到environment
。
您可以访问您的模型,实际上,您可以通过使任务依赖于环境任务来访问整个环境。 这可以让你做一些事情,比如run rake RAILS_ENV=staging db:migrate
。
请参阅“ 自定义Rake任务 ”。
它加载到你的Rails环境中,所以你可以真正使用你的模型,而不是。 否则,它不知道这些事情。
所以如果你做了一个任务, puts "HI!"
那么您不需要将:environment
任务添加到依赖项。 但是,如果你想做一些像User.find(1)
那么需要它。
包括=> :environment
将告诉Rake加载完整的应用程序环境,给予相关的任务访问像类,助手等东西。没有:environment
,你将无法访问任何这些额外的东西。
另外=> :environment
本身不提供任何与环境相关的variables,例如environment
, @environment
, RAILS_ENV
等