2012-01-02 84 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 

那的工作對錯誤的通知。

相關問題