Ошибка Rake 0.9.1

#ruby-on-rails #rubygems #rake

#ruby-on-rails #rubygems #rake

Вопрос:

У меня возникли некоторые проблемы с rake. Мой gemfile выглядит следующим образом:

 gem 'rails', '3.1.0.rc1'
gem "rake", "!= 0.9.0"
  

Я получаю эту ошибку при попытке миграции:

[rake —предварительные запросы] рейк прерван! неинициализированная константа Rake::DSL /Users/nachtmeister/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/1.9.1/rake.rb:2482:в const_missing'
/Users/nachtmeister/.rvm/gems/ruby-1.9.2-p136/gems/rake-0.9.1/lib/rake/tasklib.rb:8:in
‘ /Users/nachtmeister/.rvm/gems/ruby-1.9.2-p136/gems/rake-0.9.1/lib/rake/tasklib.rb:6: в <module:Rake>'
/Users/nachtmeister/.rvm/gems/ruby-1.9.2-p136/gems/rake-0.9.1/lib/rake/tasklib.rb:3:in
‘ /Users/nachtmeister/ .rvm/драгоценные камни/ruby-1.9.2-p136/драгоценные камни/rake-0.9.1/библиотека/rake/rdoctask.rb:20:в require'
/Users/nachtmeister/.rvm/gems/ruby-1.9.2-p136/gems/rake-0.9.1/lib/rake/rdoctask.rb:20:in
‘ /Users/nachtmeister/.rvm/gems/ruby-1.9.2-p136/gems/railties-3.1.0.rc1/lib/rails/tasks/documentation.rake:1: в require'
/Users/nachtmeister/.rvm/gems/ruby-1.9.2-p136/gems/railties-3.1.0.rc1/lib/rails/tasks/documentation.rake:1:in
‘ /Users/nachtmeister/.rvm/gems/ruby-1.9.2-p136/gems/railties-3.1.0.rc1/lib/rails/tasks.rb:16: в load'
/Users/nachtmeister/.rvm/gems/ruby-1.9.2-p136/gems/railties-3.1.0.rc1/lib/rails/tasks.rb:16:in
блоке в ‘ /Users/nachtmeister/.rvm/gems/ruby-1.9.2-p136/gems/railties-3.1.0.rc1/lib/rails/tasks.rb: 6: в each'
/Users/nachtmeister/.rvm/gems/ruby-1.9.2-p136/gems/railties-3.1.0.rc1/lib/rails/tasks.rb:6:in
‘ /Users/nachtmeister/. rvm/gems/ruby-1.9.2-p136/gems/railties-3.1.0.rc1/lib/rails/application.rb:189: в require'
/Users/nachtmeister/.rvm/gems/ruby-1.9.2-p136/gems/railties-3.1.0.rc1/lib/rails/application.rb:189:in
блоке initialize_tasks’ /Users/nachtmeister/.rvm/gems/ruby-1.9.2-p136/gems/railties-3.1.0.rc1/lib/rails/railtie.rb:182: в call'
/Users/nachtmeister/.rvm/gems/ruby-1.9.2-p136/gems/railties-3.1.0.rc1/lib/rails/railtie.rb:182:in
каждом’ /Users/nachtmeister/.rvm/gems/ruby-1.9.2-p136/gems raildies-3.1.0.rc1/lib/rails/railtie.rb:182: в load_tasks'
/Users/nachtmeister/.rvm/gems/ruby-1.9.2-p136/gems/railties-3.1.0.rc1/lib/rails/engine.rb:391:in
load_tasks’ /Users/nachtmeister/.rvm/gems/ruby-1.9.2-p136/gems/raildies-3.1.0.rc1/lib/rails/application.rb:102: в load_tasks'
/Users/nachtmeister/.rvm/gems/ruby-1.9.2-p136/gems/railties-3.1.0.rc1/lib/rails/railtie/configurable.rb:28:in
method_missing’ /Users/nachtmeister/Dropbox/Development/Rails/crafft/Rakefile:7:в <top (required)>'
/Users/nachtmeister/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/1.9.1/rake.rb:2373:in
загрузке’ /Users/nachtmeister/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/1.9.1/rake.rb:2373: в raw_load_rakefile'
/Users/nachtmeister/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/1.9.1/rake.rb:2007:in
блоке в load_rakefile’ /Users/nachtmeister/.ravm/rubies/ruby-1.9.2-p136/ библиотека/ruby/1.9.1/rake.rb:2058: в standard_exception_handling'
/Users/nachtmeister/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/1.9.1/rake.rb:2006:in
файле load_rakefile’ /Users/nachtmeister/.rvm/rubies/ruby-1.9.2-p136/библиотека/ruby/1.9.1/rake.rb:1991: в run'
/Users/nachtmeister/.rvm/rubies/ruby-1.9.2-p136/bin/rake:35:in

Ответ №1:

Попробуйте Rake 0.8.7. Rake фактически сломал Rails с изменением, несовместимым с обратным. У меня есть мой Gemfile с rake '0.8.7' .

Комментарии:

1. Кажется, работает. Спасибо. Я использовал 0.9.1, потому что думал, что эта ошибка исправлена. :/

Ответ №2:

Другой альтернативой является использование bundle exec rake , которое позволит вам установить как rake 0.8.7, так и 0.9.1, если вам нужна 0.9.1.