#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:6: в
/Users/nachtmeister/.rvm/gems/ruby-1.9.2-p136/gems/rake-0.9.1/lib/rake/tasklib.rb:8:in<module:Rake>'
‘ /Users/nachtmeister/ .rvm/драгоценные камни/ruby-1.9.2-p136/драгоценные камни/rake-0.9.1/библиотека/rake/rdoctask.rb:20:в
/Users/nachtmeister/.rvm/gems/ruby-1.9.2-p136/gems/rake-0.9.1/lib/rake/tasklib.rb:3:inrequire'
‘ /Users/nachtmeister/.rvm/gems/ruby-1.9.2-p136/gems/railties-3.1.0.rc1/lib/rails/tasks/documentation.rake:1: в
/Users/nachtmeister/.rvm/gems/ruby-1.9.2-p136/gems/rake-0.9.1/lib/rake/rdoctask.rb:20:inrequire'
‘ /Users/nachtmeister/.rvm/gems/ruby-1.9.2-p136/gems/railties-3.1.0.rc1/lib/rails/tasks.rb:16: в
/Users/nachtmeister/.rvm/gems/ruby-1.9.2-p136/gems/railties-3.1.0.rc1/lib/rails/tasks/documentation.rake:1:inload'
блоке в ‘ /Users/nachtmeister/.rvm/gems/ruby-1.9.2-p136/gems/railties-3.1.0.rc1/lib/rails/tasks.rb: 6: в
/Users/nachtmeister/.rvm/gems/ruby-1.9.2-p136/gems/railties-3.1.0.rc1/lib/rails/tasks.rb:16:ineach'
‘ /Users/nachtmeister/. rvm/gems/ruby-1.9.2-p136/gems/railties-3.1.0.rc1/lib/rails/application.rb:189: в
/Users/nachtmeister/.rvm/gems/ruby-1.9.2-p136/gems/railties-3.1.0.rc1/lib/rails/tasks.rb:6:inrequire'
блоке initialize_tasks’ /Users/nachtmeister/.rvm/gems/ruby-1.9.2-p136/gems/railties-3.1.0.rc1/lib/rails/railtie.rb:182: в
/Users/nachtmeister/.rvm/gems/ruby-1.9.2-p136/gems/railties-3.1.0.rc1/lib/rails/application.rb:189:incall'
каждом’ /Users/nachtmeister/.rvm/gems/ruby-1.9.2-p136/gems raildies-3.1.0.rc1/lib/rails/railtie.rb:182: в
/Users/nachtmeister/.rvm/gems/ruby-1.9.2-p136/gems/railties-3.1.0.rc1/lib/rails/railtie.rb:182:inload_tasks'
load_tasks’ /Users/nachtmeister/.rvm/gems/ruby-1.9.2-p136/gems/raildies-3.1.0.rc1/lib/rails/application.rb:102: в
/Users/nachtmeister/.rvm/gems/ruby-1.9.2-p136/gems/railties-3.1.0.rc1/lib/rails/engine.rb:391:inload_tasks'
method_missing’ /Users/nachtmeister/Dropbox/Development/Rails/crafft/Rakefile:7:в
/Users/nachtmeister/.rvm/gems/ruby-1.9.2-p136/gems/railties-3.1.0.rc1/lib/rails/railtie/configurable.rb:28:in<top (required)>'
загрузке’ /Users/nachtmeister/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/1.9.1/rake.rb:2373: в
/Users/nachtmeister/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/1.9.1/rake.rb:2373:inraw_load_rakefile'
блоке в load_rakefile’ /Users/nachtmeister/.ravm/rubies/ruby-1.9.2-p136/ библиотека/ruby/1.9.1/rake.rb:2058: в
/Users/nachtmeister/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/1.9.1/rake.rb:2007:instandard_exception_handling'
файле load_rakefile’ /Users/nachtmeister/.rvm/rubies/ruby-1.9.2-p136/библиотека/ruby/1.9.1/rake.rb:1991: в
/Users/nachtmeister/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/1.9.1/rake.rb:2006:inrun'
‘
/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.