2012-01-02 10 views
6

Chỉ cần tuyên bố trước: Tôi là một kẻ lừa đảo.Đường ray: làm cách nào để giải quyết cảnh báo 'rake/rdoctask' 'bị phản đối'?

Khi tôi chạy:

rake db:migrate 

tôi nhận được cảnh báo này không chấp nhận:

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 

Tôi đang sử dụng:

  • Rails 3.0.1
  • Rake 0.9.2.2
  • RSpec 2.0.1
  • rdoc 3,12

Nếu tôi gỡ bỏ cài đặt cào 0.9.2.2 và sử dụng 0.8.7 không có cảnh báo, nhưng tôi không thích tính đó là một giải pháp.

Sau khi tìm kiếm trên google, nhiều trang web cho biết tôi cần cập nhật một dòng trong Rakefile của mình (về cơ bản thay đổi yêu cầu ‘rake/rdoctask’ để yêu cầu ‘rdoc/task’). Tuy nhiên, Rakefile của tôi trông giống như sau:

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

AppName::Application.load_tasks 

Không cần tuyên bố thay thế. Khi tôi thêm yêu cầu 'rdoc/nhiệm vụ', nó không có hiệu lực. Khi tôi tìm kiếm dự án cho 'rake/rdoctask' không được chấp nhận, không có kết quả nào. Vậy tại sao đường ray lại phàn nàn?

chỉnh sửa: Không chắc chắn nếu nó quan trọng, nhưng đây là gemfile tôi:

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

thử 'bundle exec rake db: migrate' – clyfe

+0

gói exec rake db: di chuyển cho tôi cùng một cảnh báo. – user2393462435

+0

Cảnh báo này thường tuân theo GEM không tải được hoặc không được đóng gói đúng cách. Bạn có bất kỳ yêu cầu báo cáo trong di cư của bạn hoặc bạn có thể gửi Gemfile của bạn? Cập nhật: xin lỗi, đêm dài ... chỉ nhìn thấy các yêu cầu trong OP – ScottJShea

Trả lời

7

Chú giải này là cố định ở sau Rails phiên bản 3.0.x (ví dụ, Rails 3.0.9).

Khắc phục không nằm trong tệp Rakefile cấp cao nhất mà đúng hơn là tệp được đề cập trong lỗi; đó chỉ là thông báo có mục đích chung:

if Rake.application 
    Rake.application.deprecate('require \'rake/rdoctask\'', 'require \'rdoc/task\' (in RDoc 2.4.2+)', __FILE__) 
end 

Nó thực sự liên quan đến điều gì đó khác; xem this.

+0

Bạn đã đặt cái này ở đâu? Trong Rakefile? – Marc

+0

@Marc Tôi đã không đặt nó ở bất cứ đâu; đó là dòng in cảnh báo :) –

+0

Xin lỗi. Tôi hiểu lầm bài viết. Cảm ơn! – Marc

2

đây là rakefile tôi

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 

đó là làm việc để thông báo lỗi.