2009-07-08 28 views

回答

13

下面是我周圍看到的解決方案:

在你的Rakefile:

Rake::TaskManager.class_eval do 
    def remove_task(task_name) 
    @tasks.delete(task_name.to_s) 
    end 
end 

lib/tasks/db/test.rake

Rake.application.remove_task 'db:test:prepare' 

namespace :db do 
    namespace :test do 
    task :prepare do |t| 
     # rewrite the task to not do anything you don't want 
    end 
    end 
end 
+1

我喜歡這個。有了這個,你不必安裝任何插件,它運行良好。但是,如果我想在將來使用準備方法呢?是否有可能只保留它從Rake運行隊列中刪除它? – 2009-07-09 07:42:52

5

有一個插件可以幫你解決這個問題:override_rake_task。下面是一個簡單的使用例子:

namespace :db do 
    namespace :test do 
    override_task :prepare do; end 
    end 
end 
0

對於一些舊版本的rails - 你可以將Rake::Task['db:test:prepare'].clear放在你的Rakefile的末尾