我需要为每个现有任务创建一个自定义任务。例如在/ lib / tasks中我有两个包含任务的文件:update.rake
,service.rake
等。我在每个文件中都有几个任务。我有例如:rake update:users
。现在我希望为我定义的每个任务rake custom_behaviour:
提供rake custom_behaviour:update:users
,例如:Rake::Task.tasks.each do |task|
task "custom_behaviour:#{task.name}" do
puts "Custom Behaviour Task: rake #{task.name}"
end
end
。我找到了以下代码:
custom_behaviour.rake
如果我存储此代码的文件以" z"开头,这是正常的,这是因为它是要执行的最后一个文件,但如果我将文件命名为{ {1}}在" c"之后的文件中定义的所有任务不是" custom_behavioured"因为任务还没有加载......
所以我的问题是:这样做的正确方法是什么?我应该在哪里放置" custom_behaviour"代码所以当它被执行时#34;所有任务"加载?
答案 0 :(得分:2)
我使用文件名约定。这种情况发生在与Rails初始化器相关的其他依赖的东西上。
可能允许您完成所需内容的替代方案(我假设您在标准任务之前/之后有一些自定义行为)是rake_hooks:https://github.com/guillermo/rake-hooks