Rails:如何解决’rake / rdoctask”已弃用’警告?

只是预警:我是铁杆菜鸟。

当我跑:

rake db:migrate 

我收到了这个弃用警告:

 WARNING: 'require 'rake/rdoctask'' is deprecated. Please use 'require 'rdoc/task' (in RDoc 2.4.2+)' instead. at /Users/username/Code/rails/appname/rake/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/rdoctask.rb 

我正在使用:

  • Rails 3.0.1
  • 耙0.9.2.2
  • RSpec 2.0.1
  • RDoc 3.12

如果我卸载rake 0.9.2.2并使用0.8.7没有警告,但我宁愿不把它算作解决方案。

谷歌搜索后,许多网站说我需要更新我的Rakefile中的一行(基本上需要’rake / rdoctask’来改变需要’rdoc / task’)。 但是,我的Rakefile看起来像这样:

 require File.expand_path('../config/application', __FILE__) require 'rake' AppName::Application.load_tasks 

没有要求替换的声明。 当我添加require’rdoc / task’时,它没有任何效果。 当我在项目中搜索已弃用的’rake / rdoctask’时,没有结果。 为什么rails抱怨?

编辑:不确定是否重要,但这是我的gemfile:

 source 'http://rubygems.org' gem 'rails', '3.0.1' gem 'sqlite3-ruby', :require => 'sqlite3' group :development, :test do gem 'rspec-rails', '2.0.1' gem 'annotate-models', '1.0.4' end group :test do gem 'rspec', '2.0.1' gem 'webrat', '0.7.1' gem 'spork', '0.8.4' end 

请注意,这在以后的Rails 3.0.x版本中已得到修复(例如,Rails 3.0.9)。

修复程序不在顶级Rakefile中,而是在错误中提到的文件中; 这只是一个通用的通知:

 if Rake.application Rake.application.deprecate('require \'rake/rdoctask\'', 'require \'rdoc/task\' (in RDoc 2.4.2+)', __FILE__) end 

不过,它实际上与其他东西有关; 看到这个 。

这是我的rakefile

 require File.expand_path('../config/application', __FILE__) require 'rake' require 'rake/testtask' require 'rdoc/task' # add this (and perhaps make it conditional on Rails.version if you like): Rake.application.options.ignore_deprecate = true myapp::Application.load_tasks 

这是为bug通知工作。