错误:'rake / rdoctask'已经过时,不再支持。 改用“rdoc / task”(在RDoc 2.4.2+中可用)

似乎这个问题的最后一个post是由于某种原因closures,所以我会尽我的运气…

我试图运行一个简单的“rake db:migrate”命令。 当我这样做的时候,我得到了标题中的错误。 是的,解决scheme“显得”显而易见,但这不是因为我没有Rakefile不包含任何对“rake / rdoctask”的引用。 它似乎来自documentation.rake,但是当我尝试更改该错误所推荐的文件,我得到一个不同的错误。 我发现了几个post宣称这是一个已知的问题,但我没有发现指示如何解决或解决此问题。

有没有人有任何想法如何解决它? 下面是rake命令的输出–trace:

$ rake --trace db:migrate rake aborted! ERROR: 'rake/rdoctask' is obsolete and no longer supported. Use 'rdoc/task' (available in RDoc 2.4.2+) instead. C:/Programs/Ruby193/lib/ruby/gems/1.9.1/gems/rake-10.0.3/lib/rake/rdoctask.rb:1:in `<top (required)>' C:/Programs/Ruby193/lib/ruby/gems/1.9.1/gems/railties-3.0.3/lib/rails/tasks/documentation.rake:2:in `require' C:/Programs/Ruby193/lib/ruby/gems/1.9.1/gems/railties-3.0.3/lib/rails/tasks/documentation.rake:2:in `<top (required)>' C:/Programs/Ruby193/lib/ruby/gems/1.9.1/gems/railties-3.0.3/lib/rails/tasks.rb:15:in `load' C:/Programs/Ruby193/lib/ruby/gems/1.9.1/gems/railties-3.0.3/lib/rails/tasks.rb:15:in `block in <top (required)>' C:/Programs/Ruby193/lib/ruby/gems/1.9.1/gems/railties-3.0.3/lib/rails/tasks.rb:6:in `each' C:/Programs/Ruby193/lib/ruby/gems/1.9.1/gems/railties-3.0.3/lib/rails/tasks.rb:6:in `<top (required)>' C:/Programs/Ruby193/lib/ruby/gems/1.9.1/gems/railties-3.0.3/lib/rails/application.rb:213:in `require' C:/Programs/Ruby193/lib/ruby/gems/1.9.1/gems/railties-3.0.3/lib/rails/application.rb:213:in `initialize_tasks' C:/Programs/Ruby193/lib/ruby/gems/1.9.1/gems/railties-3.0.3/lib/rails/application.rb:139:in `load_tasks' C:/Programs/Ruby193/lib/ruby/gems/1.9.1/gems/railties-3.0.3/lib/rails/application.rb:77:in `method_missing' C:/developer/skknobara/Rakefile:7:in `<top (required)>' C:/Programs/Ruby193/lib/ruby/gems/1.9.1/gems/rake-10.0.3/lib/rake/rake_module.rb:25:in `load' C:/Programs/Ruby193/lib/ruby/gems/1.9.1/gems/rake-10.0.3/lib/rake/rake_module.rb:25:in `load_rakefile' C:/Programs/Ruby193/lib/ruby/gems/1.9.1/gems/rake-10.0.3/lib/rake/application.rb:583:in `raw_load_rakefile' C:/Programs/Ruby193/lib/ruby/gems/1.9.1/gems/rake-10.0.3/lib/rake/application.rb:89:in `block in load_rakefile' C:/Programs/Ruby193/lib/ruby/gems/1.9.1/gems/rake-10.0.3/lib/rake/application.rb:160:in `standard_exception_handling' C:/Programs/Ruby193/lib/ruby/gems/1.9.1/gems/rake-10.0.3/lib/rake/application.rb:88:in `load_rakefile' C:/Programs/Ruby193/lib/ruby/gems/1.9.1/gems/rake-10.0.3/lib/rake/application.rb:72:in `block in run' C:/Programs/Ruby193/lib/ruby/gems/1.9.1/gems/rake-10.0.3/lib/rake/application.rb:160:in `standard_exception_handling' C:/Programs/Ruby193/lib/ruby/gems/1.9.1/gems/rake-10.0.3/lib/rake/application.rb:70:in `run' C:/Programs/Ruby193/lib/ruby/gems/1.9.1/gems/rake-10.0.3/bin/rake:33:in `<top (required)>' C:/Programs/Ruby193/bin/rake:23:in `load' C:/Programs/Ruby193/bin/rake:23:in `<main>' 

我发现我的Gemfile中有rails 3.0.3,所以我把它改成了3.2.9,但现在当我运行rake db时:migrate我得到:

 rake aborted! Bundler could not find compatible versions for gem "rack": In Gemfile: rails (= 3.2.9) x86-mingw32 depends on rack (~> 1.4.0) x86-mingw32 rack (1.2.5) 

我不知道错误是什么意思,但“gem列表架”显示我安装了1.4.1和1.4.0。 我的Gemfile非常简单:

 gem 'rails', '3.2.9' gem 'rack','< 1.4.1' gem 'mysql2', '< 0.3' 

有什么想法吗?

我有使用rails 2.3.5类似的问题,所以跟踪消息中的指示我编辑了Rakefile需要'rdoc /任务',而不是耙/ rdoctask和安装rdocgem。

如果您使用的是rake版本> 10.0.0。 请编辑您的Rakefile

从:

 require 'rake' require 'rake/testtask' require 'rake/rdoctask' require 'tasks/rails' 

至:

 require 'rake' require 'rake/testtask' require 'rdoc/task' require 'tasks/rails' 

如果你不想编辑Rakefile,你可以切换回老版本的像这样

 gem uninstall rake -v 10.0.3 gem install rake -v 0.8.7 

当我的老应用程序迁移到rails 2.3.15时遇到了类似的问题。 我通过安装旧版本的rake解决了这个问题,并卸载了当前的10.0.3版本:

 gem install rake --version 0.8.7 gem uninstall rake --version 10.0.3 

我把它放在工作

gem耙子','0.9.2.2'

在我的Gemfile中,然后运行耙

 bundle exec rake db:migrate 

我不得不解决这个问题,而不是打破了老耙,但没有安装rdoc的地方。 我添加了一个开始…救援条款:

 begin require 'rake/rdoctask' rescue require 'rdoc/task' end 

我遇到了同样的问题…我做了上面提到的GiridharBandi

 require 'rake' require 'rake/testtask' require 'rake/rdoctask' require 'tasks/rails' 

至:

 require 'rake' require 'rake/testtask' require 'rdoc/task' require 'tasks/rails' 

耙子版本10.0.4是在那里的gem名单,但当我试图卸载,它说耙没有安装。 所以我忽略了这一点,并继续安装耙0.8.7。 一旦安装,我安装了rdoc

 gem install rdoc <= 1.8.6 : unsupported = 1.8.7 : gem install rdoc-data; rdoc-data --install = 1.9.1 : gem install rdoc-data; rdoc-data --install >= 1.9.2 : nothing to do! Yay! 

然后一切都开始正常工作。

对于轨道3.0.6,与相同types的错误:

 ERROR: 'rake/rdoctask' is obsolete and no longer supported. Use 'rdoc/task' (available in RDoc 2.4.2+) instead. 

我安装了耙0.9.2和rdoc。 注释掉#require'tasks / rails',然后一切开始工作。 我认为Rake问题已经在rails> 3.2.9中解决了。

我最近有类似的问题。

看起来像是一样的问题: 无法运行任何耙指令:“错误:'耙/ rdoctask'已过时,不再支持”

我通过升级到Rails 3.2.9来解决它。

像原来的海报,我没有耙/ rdoctask的要求。 升级我的铁轨不是一个选项。 答案是保持在你的Gemfile中的0.9.2.2。

这可能不是正确的方法,但我进入了我的Gemfile.lock文件,并将我的耙子版本从10.0.3改回0.8.7。 我现在正在运行Rails 3.0.5,并在恢复之前暂时更新到3.0.19。 我相信更新了一些gem,也使得Railsgem正在寻找大于或等于0.8.7的最新版本:

 rails (3.0.5) actionmailer (= 3.0.5) actionpack (= 3.0.5) activerecord (= 3.0.5) activeresource (= 3.0.5) activesupport (= 3.0.5) bundler (~> 1.0) railties (= 3.0.5) railties (3.0.5) actionpack (= 3.0.5) activesupport (= 3.0.5) rake (>= 0.8.7) thor (~> 0.14.4) rake (0.8.7) 

我也卸载了10.0.3:

 gem uninstall rake --version 10.0.3 

之后,一切又恢复到原样。

如果我没有回滚轨道3.0.19,那么我会一直使用耙10.0.3。

希望这可以帮助别人!

每当我有一个基于Bundler的项目时,我都会遇到这个问题,而且我正在使用Ruby 1.9。 2 。 最终我发现Bundler并没有pipe理rdoc gem,而我所要解决的问题是在Gemfile中包含rdoc(如果Gemfile已经被configuration为使用gempec),并运行bundle install

我似乎没有碰到1.9.3或2.0.0,只有1.9.2。

噢,我的上帝,我几乎花了这个小时,最后这里是我的情况(可以帮助别人:)):我自己安装了多个rails版本,所以我只卸载了最新的一个,因为我想使用最尖锐的一个现在是4.0.1)

所以:

 $ gem uninstall rails 

我得到这个:

 Select gem to uninstall: 1. rails-0.9.5 2. rails-4.0.0 3. rails-4.0.1 4. All versions > 

所以我select了前两个,就是这样:)现在一切都好了希望这可以帮助神秘卡住我:(