What's the 'environment' task in Rake?

前端 未结 3 1222
我在风中等你
我在风中等你 2020-12-04 13:40

According to \"Custom Rake Tasks\":

desc \"Pick a random user as the winner\"
task :winner => :environment do
  puts \"Winner: #{pick(User).name}\"
end


        
相关标签:
3条回答
  • 2020-12-04 14:18

    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".

    0 讨论(0)
  • 2020-12-04 14:36

    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.

    0 讨论(0)
  • 2020-12-04 14:37

    Including => :environment will tell Rake to load full the application environment, giving the relevant task access to things like classes, helpers, etc. Without the :environment, you won't have access to any of those extras.

    Also => :environment itself does not make available any environment-related variables, e.g. environment, @environment, RAILS_ENV, etc.

    0 讨论(0)
提交回复
热议问题