我有一个任务想要在运行 rails tmp:clear
namespace :myapp do
task :clear do
# do some stuff
end
end
我了解到我可以通过增强这项任务来做到这一点:
Rake::Task['tmp:clear'].enhance(['myapp:clear'])
问题是,当我的代码加载时,tmp:clear
未定义,因此失败:
$ rails tmp:clear
rails aborted!
Don't know how to build task 'tmp:clear' (See the list of available tasks with `rails --tasks`)
myapp/lib/tasks/clear.rake:7:in `<top (required)>'
最佳答案
Rails 任务在本地任务之后加载。您需要先require 'rails/tasks'
才能避免这种情况。
完整的解决方案:
require 'rails/tasks'
namespace :myapp do
task :clear do
puts "do some stuff"
end
end
Rake::Task['tmp:clear'].enhance(['myapp:clear'])
关于ruby-on-rails - 在 "tmp:clear"之后运行任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57515478/