В некоторых проектах, которые не вызывают весь стек рельсов, добавление rdoc в Gemfile было для меня ключом к успеху:
group :development, :test do
gem 'rake', '~> 0.9.2.2'
gem "rdoc", '~> 3.12'
end
ОБНОВЛЕНИЕ: Это все еще вызывало у меня рельсы 3.0.х проект.Rakefile, драгоценные камни, казалось, все в порядке, но я все еще получал проблему.Чтобы точно выяснить, откуда выводится предупреждение, я поместил канарейку в gems / rake-0.9.2.2 / lib / rake / rdoctask.rb:
if Rake.application
begin
raise 'where am i'
rescue
puts $@
end
Rake.application.deprecate('require \'rake/rdoctask\'', 'require \'rdoc/task\' (in RDoc 2.4.2+)', __FILE__)
end
Это сразу указало на проблему в самом стеке рельсов,Быстрая проверка, и очевидно, что рельсы 3.0.8 заполнены требованиями к рейку / rdoctask.Обновление до rails (3.0.9 или выше, я считаю) исправляет проблему (или вы можете понизить рейк, как предлагали другие).
Но пока вы застряли на ~ 3.0.8 и не хотите понижать рейтингРейк, вы можете подавить предупреждение, установив ignore_deprecate в вашем 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
Babylon::Application.load_tasks
Зачем подавлять предупреждение?Моя основная мотивация заключалась в том, чтобы гарантировать, что задания cron, которые вызывают rake, не будут регистрировать и отправлять ложные сообщения по электронной почте.