1

突然、次のエラー メッセージが表示されるようになりました。

(in /Users/me/.rvm/gems/ruby-1.9.3-p125@mysql2/gems/rails-0.9.5)
rake aborted!
ERROR: 'rake/rdoctask' is obsolete and no longer supported. Use 'rdoc/task' (available in RDoc 2.4.2+) instead.
/Users/me/.rvm/gems/ruby-1.9.3-p125@mysql2/gems/rails-0.9.5/Rakefile:3:in `<top (required)>'

rails s を実行するとき (私の開発環境ターミナル - Mac Mountain Lion)。このアプリケーションは本番環境にあるため、本番環境に移動し、バンドル ショーを行い、Gemfile を変更して、gem バージョンをハードコーディングしました。

これが私のローカル開発環境にあるものです(エラーメッセージを生成しているもの)。

actionmailer (3.2.3)
actionpack (3.2.3)
activemodel (3.2.3)
activerecord (3.2.3)
activeresource (3.2.3)
activesupport (3.2.3)
annotate (2.4.1.beta1)
arel (3.0.2)
bcrypt-ruby (3.0.1)
bootstrap-datepicker-rails (0.6.15)
bootstrap-sass (2.0.2)
builder (3.0.4)
bundler (1.1.3)
coffee-rails (3.2.2)
coffee-script (2.2.0)
coffee-script-source (1.6.1)
commonjs (0.2.6)
devise (2.0.4)
diff-lcs (1.1.3)
erubis (2.7.0)
execjs (1.4.0)
factory_girl (3.2.0)
factory_girl_rails (3.2.0)
hike (1.2.1)
i18n (0.6.4)
journey (1.0.4)
jquery-rails (2.0.2)
json (1.7.1)
less (2.2.2)
less-rails (2.2.6)
libv8 (3.3.10.4)
mail (2.4.4)
mime-types (1.21)
multi_json (1.6.1)
mysql2 (0.3.11)
nokogiri (1.5.6)
orm_adapter (0.0.7)
polyglot (0.3.3)
rack (1.4.5)
rack-cache (1.2)
rack-ssl (1.3.3)
rack-test (0.6.2)
rails (3.2.3)
railties (3.2.3)
rake (10.0.3)
rdoc (3.4)
rest-client (1.6.7)
rspec (2.6.0)
rspec-core (2.6.4)
rspec-expectations (2.6.0)
rspec-mocks (2.6.0)
rspec-rails (2.6.1)
sass (3.2.7)
sass-rails (3.2.5)
sprockets (2.1.3)
stripe (1.7.0)
therubyracer (0.10.1)
thor (0.14.6)
tilt (1.3.5)
tinymce-rails (3.4.8)
treetop (1.4.12)
twitter-bootstrap-rails (2.1.0)
tzinfo (0.3.37)
uglifier (1.2.4)
warden (1.1.1)
webrat (0.7.1)

私は Stackoverflow と Web を調査しましたが、どの提案も機能しませんでした (rake gem のバージョンを 0.8.7 などの別のものに変更したり、アプリの Rakefile を編集して非推奨エラーを抑制するなど)。また、rdoc を追加し、Rakefile に「rdoc/task」を要求しました

それでも、同じエラー。

4

5 に答える 5

6

この問題を抱えている他の誰かを助けるためだけに。あなたが私のような人なら、問題はレールの現在のバージョンが4で、3.0.7のような古いバージョンを使いたいということです

それを学ぶためにレールを新しくインストールし、使用しているチュートリアルがレールの 3.0.x バージョン用である場合、または仕事で古いバージョンのレールを使用する必要がある場合は、この穴に入ることができます。

私の場合、3.0.7 Rails プロジェクトが投げ出され、Rails を学び、このコードを拡張するように言われました。

だから、レールの学習を始めたばかりで、「rake db:migrate」を実行したときにこのエラーが発生するまでチュートリアルに従っていました

rake aborted!
ERROR: 'rake/rdoctask' is obsolete and no longer supported. Use 'rdoc/task' (available in RDoc 2.4.2+) instead.
/Users/pj/.rvm/gems/ruby-1.9.3-p448/gems/railties-3.0.7/lib/rails/tasks/documentation.rake:1:in `require'
/Users/pj/.rvm/gems/ruby-1.9.3-p448/gems/railties-3.0.7/lib/rails/tasks/documentation.rake:1:in `<top (required)>'
/Users/pj/.rvm/gems/ruby-1.9.3-p448/gems/railties-3.0.7/lib/rails/tasks.rb:15:in `load'
/Users/pj/.rvm/gems/ruby-1.9.3-p448/gems/railties-3.0.7/lib/rails/tasks.rb:15:in `block in <top (required)>'

これは古いバージョンの Rails を使用していたために発生しました。私の場合は 3.0.7 です。当時のように「バンドル ショー」を実行すると、rake バージョン 10.0.0 などを使用していることがわかります。 ...そして、rake 0.9.2 を実行する必要があります ...これが問題の原因です..

私にとっての解決策は、(a)gemfileにgemを追加し、(b)バンドルインストールに追加することでした

だから、私のgemfileに追加しました:

gem 'rake', '0.9.2'

それからした

'bundle install'

このメッセージを受け取りました:

You have requested:
  rake = 0.9.2

The bundle currently has rake locked at 10.1.0.
Try running `bundle update rake`

そして、私はそれをしました...

bundle update rake.

そして、それはうまくいきました。

その後、「rake db:migrate」を実行すると、うまくいきました。

これが誰かに役立つことを願っています。ビダ。

PS: 私のように Rails を初めて使用し、古い Rails アプリを継承している場合は、絶対に「bundle update」を実行しないでください。そうしないと、苦痛の世界に陥ります。このコマンドは、すべての gem を最新バージョンに更新するため、非互換性の問題が多数発生します。それを回避する唯一の方法は、幸運にも git がインストールされていて、「git checkout」を実行して戻ることができる場合です...

于 2013-08-22T11:41:45.340 に答える
4

rake gems:installRailsバージョンがrails2.3.2で、rvmがインストールされているコマンドでgemをインストールしようとすると、この同じ問題が発生しました。私の宝石リストは、

actionmailer (2.3.2)
actionpack (2.3.2)
activerecord (2.3.2)
activeresource (2.3.2)
activesupport (2.3.2)
bundler (1.3.5)
rails (2.3.2)
rake (10.0.4)
rubygems-bundler (1.1.1)
rvm (1.11.3.7)

コマンドでレーキをアンインストールしました

rvm use ruby-1.8.7-p371@global && gem uninstall rake -v 10.0.4

次に、古いバージョンのrakeをインストールしました

rvm use ruby-1.8.7-p371@global && gem install rake -v 0.8.7

今は正常にrake gems:install動作します

それが誰かを助けることを願っています!

于 2013-05-07T07:22:32.083 に答える
1

にアップグレードするrails 4.0.0と、同じエラーが発生しました。

rails -v
(in /Users/oma/.rvm/gems/ruby-2.0.0-p247/gems/rails-0.9.5)
rake aborted!
ERROR: 'rake/rdoctask' is obsolete and no longer supported. Use 'rdoc/task' (available in RDoc 2.4.2+) instead.
/Users/oma/.rvm/gems/ruby-2.0.0-p247/gems/rails-0.9.5/Rakefile:3:in `<top (required)>'
(See full trace by running task with --trace)

アップグレードするために、Gemfile のバージョン番号を削除しました

 source 'https://rubygems.org'
 gem 'rails'   # NO VERSION

そして、bundle updateこれが最後を選ぶと思ったようにしました。しかし、どういうわけか、私は得rails 0.9.5ました。悪ふざけみたいな感じですよね(笑)

$ gem list rails
rails (4.0.1.rc2, 4.0.0, 0.9.5)

これが原因であると 100% 確信を持って言うことはできませんが、私たちは 2 人で、同じブランチで作業し、同じエラーを見ました。修正は私たちの両方にとってうまくいきました。単に

Railsのバージョンを指定してください!

$gem uninstall rails -v 0.9.5
Gemfile
  source 'https://rubygems.org'
  gem 'rails', '4.0.0'

それからバンドルし、rails -v を実行し、くすくす笑い (または泣く)、生産に戻ります。

于 2013-10-22T15:03:02.173 に答える
0

ruby 1.9.3p448 (2013-06-27 リビジョン 41675) を使用すると、次のように動作します。

1) rake バージョン 10.1.0 を使用します (以下を Gemfile に入れます):

gem 'rake', '10.1.0'

(おそらく別のバージョンを使用できることに注意してください。ただし、以下の行番号は変更される可能性があります。)

2) Rakefile の 54 行目にコメントを付けて、次のように置き換えます。

#require 'rake/rdoctask'
gem 'rdoc', ">= 2.4.2"
require 'rdoc/task'

3) テスト

$ bundle install
$ bundle exec rake
于 2013-11-07T21:51:20.570 に答える
0

StackOverflowで同様の問題の解決策を見てください。

もう1つのオプションは、使用することです(Redmine Rakefileからの例)

require 'rdoc'
require 'rdoc/task'

それ以外の

require 'rake/testtask'
require 'rake/rdoctask'
于 2013-03-29T13:50:14.770 に答える