Rails: как мне разрешить предупреждение "rake / rdoctask" устарело? - PullRequest
6 голосов
/ 02 января 2012

Просто предупреждение: я нуб рельса.

Когда я бегу:

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, предупреждений не будет, но я не считаю это решением.

После поиска в Google многие сайты говорят, что мне нужно обновить строку в моем Rakefile (в основном при изменении требуется, чтобы 'rake / rdoctask' требовал 'rdoc / task'). Однако мой Rakefile выглядит так:

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

AppName::Application.load_tasks

Там нет требуемого заявления для замены. Когда я добавляю require 'rdoc / task', это не имеет никакого эффекта. Когда я ищу в проекте устаревшую 'rake / rdoctask', результатов нет. Так почему рельсы жалуются?

edit: Не уверен, имеет ли это значение, но вот мой гемфайл:

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

Ответы [ 2 ]

7 голосов
/ 02 января 2012

Обратите внимание, что это исправлено в более поздних версиях 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

Хотя на самом деле это связано с чем-то другим; см это .

2 голосов
/ 03 октября 2012

это мой грабли

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

это работает для уведомления об ошибке.

...