Нужна помощь в решении проблемы миграции RAILS 3.0.9 - PullRequest
1 голос
/ 26 июля 2011

У меня серьезные проблемы с рельсами.Я не использовал его в течение некоторого времени, поэтому я просмотрел и обновил rvm, rails и т. Д. В настоящее время я выполняю следующее:

RVM -- rvm 1.6.25 by Wayne E. Seguin (wayneeseguin@gmail.com) [https://rvm.beginrescueend.com/]

RAILS -- Rails 3.0.9

RUBY -- ruby 1.9.2p290 (2011-07-09 revision 32553) [x86_64-darwin10.8.0]

Я выполняю следующие шаги:

rails new my_project

cd my_project

bundle install

rails g scaffold person first_name:string last_name:string

rake db:migrate

/Users/devuser/.rvm/gems/ruby-1.9.2-p290/gems/rake-0.9.2/lib/rake/version.rb:4: warning: already initialized constant MAJOR
/Users/devuser/.rvm/gems/ruby-1.9.2-p290/gems/rake-0.9.2/lib/rake/version.rb:5: warning: already initialized constant MINOR
/Users/devuser/.rvm/gems/ruby-1.9.2-p290/gems/rake-0.9.2/lib/rake/version.rb:6: warning: already initialized constant BUILD
/Users/devuser/.rvm/gems/ruby-1.9.2-p290/gems/rake-0.9.2/lib/rake/version.rb:3: warning: already initialized constant NUMBERS
/Users/devuser/.rvm/gems/ruby-1.9.2-p290/gems/rake-0.9.2/lib/rake/version.rb:9: warning: already initialized constant VERSION
/Users/devuser/.rvm/gems/ruby-1.9.2-p290/gems/rake-0.9.2/lib/rake.rb:26: warning: already initialized constant RAKEVERSION
/Users/devuser/.rvm/gems/ruby-1.9.2-p290/gems/rake-0.9.2/lib/rake/early_time.rb:17: warning: already initialized constant EARLY
/Users/devuser/.rvm/gems/ruby-1.9.2-p290/gems/rake-0.9.2/lib/rake/alt_system.rb:32: warning: already initialized constant WINDOWS
/Users/devuser/.rvm/gems/ruby-1.9.2-p290/gems/rake-0.9.2/lib/rake/application.rb:28: warning: already initialized constant DEFAULT_RAKEFILES
WARNING: Possible conflict with Rake extension: String#ext already exists
WARNING: Possible conflict with Rake extension: String#pathmap already exists
/Users/devuser/.rvm/gems/ruby-1.9.2-p290/gems/rake-0.9.2/lib/rake/task_arguments.rb:73: warning: already initialized constant EMPTY_TASK_ARGS
/Users/devuser/.rvm/gems/ruby-1.9.2-p290/gems/rake-0.9.2/lib/rake/invocation_chain.rb:49: warning: already initialized constant EMPTY
/Users/devuser/.rvm/gems/ruby-1.9.2-p290/gems/rake-0.9.2/lib/rake/file_utils.rb:10: warning: already initialized constant RUBY
/Users/devuser/.rvm/gems/ruby-1.9.2-p290/gems/rake-0.9.2/lib/rake/file_utils.rb:84: warning: already initialized constant LN_SUPPORTED
/Users/devuser/.rvm/gems/ruby-1.9.2-p290/gems/rake-0.9.2/lib/rake/dsl_definition.rb:143: warning: already initialized constant Commands
/Users/devuser/.rvm/gems/ruby-1.9.2-p290/gems/rake-0.9.2/lib/rake/file_list.rb:44: warning: already initialized constant ARRAY_METHODS
/Users/devuser/.rvm/gems/ruby-1.9.2-p290/gems/rake-0.9.2/lib/rake/file_list.rb:47: warning: already initialized constant MUST_DEFINE
/Users/devuser/.rvm/gems/ruby-1.9.2-p290/gems/rake-0.9.2/lib/rake/file_list.rb:51: warning: already initialized constant MUST_NOT_DEFINE
/Users/devuser/.rvm/gems/ruby-1.9.2-p290/gems/rake-0.9.2/lib/rake/file_list.rb:55: warning: already initialized constant SPECIAL_RETURN
/Users/devuser/.rvm/gems/ruby-1.9.2-p290/gems/rake-0.9.2/lib/rake/file_list.rb:61: warning: already initialized constant DELEGATING_METHODS
/Users/devuser/.rvm/gems/ruby-1.9.2-p290/gems/rake-0.9.2/lib/rake/file_list.rb:364: warning: already initialized constant DEFAULT_IGNORE_PATTERNS
/Users/devuser/.rvm/gems/ruby-1.9.2-p290/gems/rake-0.9.2/lib/rake/file_list.rb:370: warning: already initialized constant DEFAULT_IGNORE_PROCS
/Users/devuser/.rvm/gems/ruby-1.9.2-p290/gems/rake-0.9.2/lib/rake.rb:64: warning: already initialized constant FileList
/Users/devuser/.rvm/gems/ruby-1.9.2-p290/gems/rake-0.9.2/lib/rake.rb:65: warning: already initialized constant RakeFileUtils
rake aborted!
stack level too deep

Заранее спасибо!

Ответы [ 2 ]

3 голосов
/ 29 июля 2011

Решение скопировано из моего блога: http://joneslee85.wordpress.com/2011/07/29/howto-fix-rake-0-9-2-to-work-with-ruby-1-9-2-under-rvm/

Лучший способ: Я не думаю, что возврат к 0.8.7 - лучший ответ, потому что если вы скомпилируете 1.9.2 с помощью RVM, вы столкнетесь с этой проблемой. Вот как исправить эту детку:

  • gem list | grep 'rake' и вы увидите это rake (0.9.2 ruby). Теперь, пожалуйста, внимательно обратите внимание на ключевое слово " ruby ​​" - злодей, на самом деле это дублирование рейка в папке @global. Я думаю, что это может быть ошибка RVM.
  • Теперь нам нужно удалить rake, пожалуйста: gem uninstall rake, скажите Y, когда он предупреждает, что он нарушит зависимости, и также скажите Y, если он просит удалить исполняемый файл 'rake'.
  • Теперь проверьте еще раз gem list | grep 'rake', и вы просто увидите rake (0.9.2)

Это решит эту проблему.

ВТОРОЙ ПУТЬ: вернуться к 0,8,7

Хорошо, вы НЕ МОЖЕТЕ удалить rake 0.9.2, потому что RVM установил rake в папку @global. Итак, вот как вы можете удалить rake 0.9.2 вручную перед установкой rake 0.8.7:

gem list -d rake

и обратите внимание на , установленный по адресу: /Users/mojo/.rvm/gems/ruby-1.9.2-p290@global в выходных данных. Ваш будет отличаться от моего, поэтому, пожалуйста, имейте в виду, теперь нам нужно удалить грабли с помощью следующих команд:

ПРИМЕЧАНИЕ: убедитесь, что вы экранировали символ @ с помощью \

rm /Users/mojo/.rvm/gems/ruby-1.9.2-p290\@global/bin/rake
rm /Users/mojo/.rvm/gems/ruby-1.9.2-p290\@global/cache/rake-0.9.2.gem
rm -rf /Users/mojo/.rvm/gems/ruby-1.9.2-p290\@global/doc/rake-0.9.2/
rm -rf /Users/mojo/.rvm/gems/ruby-1.9.2-p290\@global/gems/rake-0.9.2/
rm /Users/mojo/.rvm/gems/ruby-1.9.2-p290\@global/specifications/rake-0.9.2.gemspec

Далее следует установить грабли 0.8.7 с gem install rake -v=0.8.7

1 голос
/ 26 июля 2011

Снимите грабли 0.9.2 и установите грабли 0.8.7 и посмотрите, работает ли он.

Хорошо известно, что ветвь граблей 0.9.x полностью ломает все установки.

...