繁体   English   中英

Rake 中的“环境”任务是什么?

[英]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@environmentRAILS_ENV等。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM