What's the 'environment' task in Rake?
According to "Custom Rake Tasks":
desc "Pick a random user as the winner"
task :winner => :environment do
puts "Winner: #{pick(User).name}"
end
As far as I know, the :winner => :environment
means "do environment
before winner
". But what's environment
? When should I use it?
I tried rake -T
, but in the list I couldn't find environment
.
Solution 1:
You can get access to your models, and in fact, your whole environment by making tasks dependent on the environment task. This lets you do things like run rake RAILS_ENV=staging db:migrate
.
See "Custom Rake Tasks".
Solution 2:
It loads in your Rails environment so you can actually use your models and what not. Otherwise, it has no idea about those things.
So if you made a task that just did puts "HI!"
then you don't need to add the :environment
task to the dependencies. But if you wish to do something like User.find(1)
well that will need it.