2012-01-02 83 views
6

只是一个预警:我是一个铁轨noob。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

如果我卸载耙0.9.2.2和使用0.8.7没有警告,但我宁愿不计为一个解决方案。

经过谷歌搜索后,很多网站都说我需要在我的Rakefile中更新一行(基本上改变require'rake/rdoctask'来要求'rdoc/task')。但是,我的Rakefile如下所示:

require File.expand_path('../config/application', __FILE__) 
require 'rake' 

AppName::Application.load_tasks 

没有要求声明来替换。当我添加require'rdoc/task'时,它不起作用。当我搜索已弃用的'rake/rdoctask'的项目时,没有结果。那么为什么铁轨抱怨?

编辑:不知道是否它的问题,但这里是我的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 
+0

尝试'捆绑执行耙分贝:迁移' – clyfe 2012-01-02 15:31:31

+0

捆绑执行耙分贝:迁移给我同样的警告。 – user2393462435 2012-01-02 15:32:55

+0

此警告通常出现在无法正常加载或没有正确包装的GEM中。您的迁移中是否有任何必需的声明,或者您可以发布您的Gemfile? 更新:对不起,漫长的夜晚......只是看到OP中的require语句 – ScottJShea 2012-01-02 15:41:52

回答

7

注意这是固定的更高版本的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 

它实际上与其他事情有关,但;见this

+0

你把这个放在哪里?在Rakefile中? – Marc 2012-01-13 15:38:29

+0

@Marc我没有放在任何地方;这是打印警告:) – 2012-01-13 15:50:00

+0

哦,对不起。我误解了这个帖子。谢谢! – Marc 2012-01-14 20:47:36

2

这是我的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 

那的工作对错误的通知。

相关问题