【问题标题】:Rails: how do I resolve the 'rake/rdoctask'' is deprecated' warning?Rails:如何解决“rake/rdoctask”已弃用“警告?
【发布时间】:2012-01-31 21:59:38
【问题描述】:

只是一个警告:我是一个 Rails 菜鸟。

当我跑步时:

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 中的一行(基本上将 require 'rake/rdoctask' 更改为 require '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

【问题讨论】:

  • 试试bundle exec rake db:migrate
  • bundle exec rake db:migrate 给了我同样的警告。
  • 此警告通常出现在 GEM 加载失败或未正确打包之后。您的迁移中是否有任何要求声明,或者您可以发布您的 Gemfile 吗?更新:对不起,漫长的夜晚......刚刚在你的 OP 中看到了 require 语句

标签: ruby-on-rails ruby-on-rails-3 rspec rake rdoc


【解决方案1】:

请注意,这在更高版本的 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

【讨论】:

  • 你把这个放在哪里了?在 Rakefile 中?
  • @Marc 我没有把它放在任何地方;那是打印警告的行:)
  • 抱歉。我误解了帖子。谢谢!
【解决方案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

这适用于错误通知。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-04-07
    • 2016-12-07
    • 2017-03-12
    • 2022-09-26
    • 2014-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多