仅为Rake任务运行初始化程序

我想在执行Rake任务时运行某个初始化程序,但在运行Rails服务器时则不行。

区分Rake调用和服务器调用的最佳方法是什么?

Rake允许您为任务指定依赖项。 建议的最佳操作是将特定于rake的初始化放在自己的任务中,而这又取决于“环境”任务。 例如:

namespace :myapp do task :custom_environment => :environment do # special initialization stuff here # or call another initializer script end task :my_task => :custom_environment do # perform actions that need custom setup end end 

如果你想制作一个rake特定的初始化程序脚本目录,就像我们对rails适当的那样,我们只需要在我们的:custom_environment任务中实现它。

 task :custom_environment => :environment do Dir.glob("config/rake-initializers/*.rb").each do |initializer| require initializer end end 

这允许您将特定于rake的初始化器与常规初始化器分开。 您只需要记住依赖于您设置的:custom_environment