[英]What's the 'environment' task in 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
本身不提供任何与环境相关的变量,例如environment
、 @environment
、 RAILS_ENV
等。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.