我想在执行Rake任务时运行某个初始化程序,但在运行Rails服务器时却不行。
区分Rake调用和服务器调用的最佳方法是什么?
答案 0 :(得分:7)
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
。