2015-02-20 2 views
0

Я пытаюсь обновить очень старое приложение от Rails 2.3.12 до Rails 3.0.0 (в качестве отправной точки для его получения в Rails 4). Я медленно проходил и исправлял все, что сломало с момента обновления, удалив старые драгоценные камни и т. Д.не может загрузить такой файл - activerecord (LoadError)

Я застрял в проблеме, которую я не могу точно сказать или исправить.

Я бегу Rails3, Ruby1.9.3

Когда я пытаюсь запустить сервер рельсы, я получаю следующее сообщение об ошибке:

=> Booting WEBrick 
=> Rails 3.0.0 application starting in development on http://0.0.0.0:3000 
=> Call with -d to detach 
=> Ctrl-C to shutdown server 
Exiting 
/home/camillavk/.rvm/gems/[email protected]/gems/activesupport-3.0.0/lib/active_support/dependencies.rb:239:in `require': cannot load such file -- activerecord (LoadError) 
     from /home/camillavk/.rvm/gems/[email protected]/gems/activesupport-3.0.0/lib/active_support/dependencies.rb:239:in `block in require' 
     from /home/camillavk/.rvm/gems/[email protected]/gems/activesupport-3.0.0/lib/active_support/dependencies.rb:225:in `block in load_dependency' 
     from /home/camillavk/.rvm/gems/[email protected]/gems/activesupport-3.0.0/lib/active_support/dependencies.rb:591:in `new_constants_in' 
     from /home/camillavk/.rvm/gems/[email protected]/gems/activesupport-3.0.0/lib/active_support/dependencies.rb:225:in `load_dependency' 
     from /home/camillavk/.rvm/gems/[email protected]/gems/activesupport-3.0.0/lib/active_support/dependencies.rb:239:in `require' 
     from /home/camillavk/Documents/Work/Saild/saild/vendor/plugins/acts_as_commentable/lib/commentable_methods.rb:1:in `<top (required)>' 
     from /home/camillavk/.rvm/gems/[email protected]/gems/activesupport-3.0.0/lib/active_support/dependencies.rb:239:in `require' 
     from /home/camillavk/.rvm/gems/[email protected]/gems/activesupport-3.0.0/lib/active_support/dependencies.rb:239:in `block in require' 
     from /home/camillavk/.rvm/gems/[email protected]/gems/activesupport-3.0.0/lib/active_support/dependencies.rb:225:in `block in load_dependency' 
     from /home/camillavk/.rvm/gems/[email protected]/gems/activesupport-3.0.0/lib/active_support/dependencies.rb:591:in `new_constants_in' 
     from /home/camillavk/.rvm/gems/[email protected]/gems/activesupport-3.0.0/lib/active_support/dependencies.rb:225:in `load_dependency' 
     from /home/camillavk/.rvm/gems/[email protected]/gems/activesupport-3.0.0/lib/active_support/dependencies.rb:239:in `require' 
     from /home/camillavk/Documents/Work/Saild/saild/vendor/plugins/acts_as_commentable/lib/acts_as_commentable.rb:1:in `<top (required)>' 
     from /home/camillavk/.rvm/gems/[email protected]/gems/activesupport-3.0.0/lib/active_support/dependencies.rb:239:in `require' 
     from /home/camillavk/.rvm/gems/[email protected]/gems/activesupport-3.0.0/lib/active_support/dependencies.rb:239:in `block in require' 
     from /home/camillavk/.rvm/gems/[email protected]/gems/activesupport-3.0.0/lib/active_support/dependencies.rb:225:in `block in load_dependency' 
     from /home/camillavk/.rvm/gems/[email protected]/gems/activesupport-3.0.0/lib/active_support/dependencies.rb:591:in `new_constants_in' 
     from /home/camillavk/.rvm/gems/[email protected]/gems/activesupport-3.0.0/lib/active_support/dependencies.rb:225:in `load_dependency' 
     from /home/camillavk/.rvm/gems/[email protected]/gems/activesupport-3.0.0/lib/active_support/dependencies.rb:239:in `require' 
     from /home/camillavk/Documents/Work/Saild/saild/vendor/plugins/acts_as_commentable/rails/init.rb:1:in `block in <class:Plugin>' 
     from /home/camillavk/.rvm/gems/[email protected]/gems/railties-3.0.0/lib/rails/plugin.rb:81:in `eval' 
     from /home/camillavk/.rvm/gems/[email protected]/gems/railties-3.0.0/lib/rails/plugin.rb:81:in `block in <class:Plugin>' 
     from /home/camillavk/.rvm/gems/[email protected]/gems/railties-3.0.0/lib/rails/initializable.rb:25:in `instance_exec' 
     from /home/camillavk/.rvm/gems/[email protected]/gems/railties-3.0.0/lib/rails/initializable.rb:25:in `run' 
     from /home/camillavk/.rvm/gems/[email protected]/gems/railties-3.0.0/lib/rails/initializable.rb:50:in `block in run_initializers' 
     from /home/camillavk/.rvm/gems/[email protected]/gems/railties-3.0.0/lib/rails/initializable.rb:49:in `each' 
     from /home/camillavk/.rvm/gems/[email protected]/gems/railties-3.0.0/lib/rails/initializable.rb:49:in `run_initializers' 
     from /home/camillavk/.rvm/gems/[email protected]/gems/railties-3.0.0/lib/rails/application.rb:134:in `initialize!' 
     from /home/camillavk/.rvm/gems/[email protected]/gems/railties-3.0.0/lib/rails/application.rb:77:in `method_missing' 
     from /home/camillavk/Documents/Work/Saild/saild/config/environment.rb:7:in `<top (required)>' 
     from /home/camillavk/.rvm/gems/[email protected]/gems/activesupport-3.0.0/lib/active_support/dependencies.rb:239:in `require' 
     from /home/camillavk/.rvm/gems/[email protected]/gems/activesupport-3.0.0/lib/active_support/dependencies.rb:239:in `block in require' 
     from /home/camillavk/.rvm/gems/[email protected]/gems/activesupport-3.0.0/lib/active_support/dependencies.rb:225:in `block in load_dependency' 
     from /home/camillavk/.rvm/gems/[email protected]/gems/activesupport-3.0.0/lib/active_support/dependencies.rb:591:in `new_constants_in' 
     from /home/camillavk/.rvm/gems/[email protected]/gems/activesupport-3.0.0/lib/active_support/dependencies.rb:225:in `load_dependency' 
     from /home/camillavk/.rvm/gems/[email protected]/gems/activesupport-3.0.0/lib/active_support/dependencies.rb:239:in `require' 
     from /home/camillavk/Documents/Work/Saild/saild/config.ru:3:in `block in <main>' 
     from /home/camillavk/.rvm/gems/[email protected]/gems/rack-1.2.8/lib/rack/builder.rb:46:in `instance_eval' 
     from /home/camillavk/.rvm/gems/[email protected]/gems/rack-1.2.8/lib/rack/builder.rb:46:in `initialize' 
     from /home/camillavk/Documents/Work/Saild/saild/config.ru:1:in `new' 
     from /home/camillavk/Documents/Work/Saild/saild/config.ru:1:in `<main>' 
     from /home/camillavk/.rvm/gems/[email protected]/gems/rack-1.2.8/lib/rack/builder.rb:35:in `eval' 
     from /home/camillavk/.rvm/gems/[email protected]/gems/rack-1.2.8/lib/rack/builder.rb:35:in `parse_file' 
     from /home/camillavk/.rvm/gems/[email protected]/gems/rack-1.2.8/lib/rack/server.rb:162:in `app' 
     from /home/camillavk/.rvm/gems/[email protected]/gems/rack-1.2.8/lib/rack/server.rb:253:in `wrapped_app' 
     from /home/camillavk/.rvm/gems/[email protected]/gems/rack-1.2.8/lib/rack/server.rb:204:in `start' 
     from /home/camillavk/.rvm/gems/[email protected]/gems/railties-3.0.0/lib/rails/commands/server.rb:65:in `start' 
     from /home/camillavk/.rvm/gems/[email protected]/gems/railties-3.0.0/lib/rails/commands.rb:30:in `block in <top (required)>' 
     from /home/camillavk/.rvm/gems/[email protected]/gems/railties-3.0.0/lib/rails/commands.rb:27:in `tap' 
     from /home/camillavk/.rvm/gems/[email protected]/gems/railties-3.0.0/lib/rails/commands.rb:27:in `<top (required)>' 
     from script/rails:6:in `require' 
     from script/rails:6:in `<main>' 

Мои Gemfile выглядит следующим образом:

source 'https://rubygems.org' 

gem "rails", "3.0.0" 

gem "airbrake" 
gem "aws-s3" 
gem "bj" 
gem "bundler", "~> 1.0.0" 
gem "calendar_date_select", "1.15" 
gem "cancan", "1.2.0" 
gem "carmen" 
gem 'comma', '0.4.1' 
gem 'exifr' 
# factory_girl 1.2.4 wasn't working with Rails 3 - consider an upgrade to factory_girl_rails? 
# gem "factory_girl", "1.2.4" 
gem 'fastercsv' 
gem "geokit" 
gem "haml" 
gem "hpricot" 
gem 'hoptoad_notifier' 
gem "jrails" 
gem "libxml-ruby", "2.4.0" 
gem "memcached", "~> 1.8.0" 
#memcached no longer works? 
gem 'dalli' 
# Not sure why we have this if we're using SQLite3 
gem "mysql2", "~> 0.2.6" 
#TODO: changed by almazom 
gem "rake", "0.8.4" 
gem 'recurly' 
gem "rdoc" 
gem "rmagick" 
gem "rspreedly" 
gem "rubyzip" 
gem 'sass' 
#need to use simplecov when upgrading to ruby 2 as rcov doesn't work 
gem "simplecov" 
gem 'sqlite3' 
# tmail no longer included in rails 3? 
gem 'tmail' 
gem "will_paginate", "2.3.16" 
gem 'yaml_db' 

group :development, :test do 
    gem 'test-unit', '1.2.3' 
    gem 'rspec', '1.3.2' 
    gem 'rspec-rails', '~> 1.3.4' 
end 

group :test do 
    gem 'capybara', '0.3.5' 
    gem 'cucumber', '1.1.2' 
    gem 'cucumber-rails', :git => "git://github.com/RKelln/cucumber-rails.git", :branch => "0.3.2-capybara-fix" 
    gem 'database_cleaner' 
end 

Неужели кто-нибудь еще столкнулся с этой проблемой, прежде чем при обновлении до Rails 3? Я ничего не могу найти в Google об этом ...

Или у кого-нибудь есть предложение о том, как я могу найти/исправить проблему?

Большое спасибо заранее!

+0

Похоже, что ошибка возникает в старом плагине Rails 2.3, который называется 'act_as_commentable'. Попробуйте удалить «vendor/plugins/actions_as_commentable» и добавить своего преемника Rails 3 в свой Gemfile: 'gem 'actions_as_commentable', '3.0.1'' – janfoeh

+0

Удивительно, спасибо! – camillavk

+0

Я сделаю ответ и попытаюсь немного объяснить, как я его нашел. Вероятно, вы столкнетесь с такими ситуациями, как это происходит в будущем. Удачи вам в миграции! – janfoeh

ответ

1

Давайте посмотрим на вашу трассировку стека. Следы стека читаются сверху вниз. Если у вас есть Функция Функция вызова B функции вызова C, где происходит ошибка, трассировки стека показывает

C 
B 
A 

Мы можем видеть, что первые строки все приходят из самой Rails:

/home/camillavk/.rvm/gems/[email protected]/gems/activesupport-3.0.0/lib/active_support/dependencies.rb:239:in `require': cannot load such file -- activerecord (LoadError) 
     from /home/camillavk/.rvm/gems/[email protected]/gems/activesupport-3.0.0/lib/active_support/dependencies.rb:239:in `block in require' 
     from /home/camillavk/.rvm/gems/[email protected]/gems/activesupport-3.0.0/lib/active_support/dependencies.rb:225:in `block in load_dependency' 
     from /home/camillavk/.rvm/gems/[email protected]/gems/activesupport-3.0.0/lib/active_support/dependencies.rb:591:in `new_constants_in' 
     from /home/camillavk/.rvm/gems/[email protected]/gems/activesupport-3.0.0/lib/active_support/dependencies.rb:225:in `load_dependency' 
     from /home/camillavk/.rvm/gems/[email protected]/gems/activesupport-3.0.0/lib/active_support/dependencies.rb:239:in `require' 

Поскольку это обычно маловероятно, что сам Rails является виновником, мы ищем первую строку, которая приходит из какого-то другого места - либо вашего собственного кода, либо сторонней библиотеки.

Следующая строка только что:

 from /home/camillavk/Documents/Work/Saild/saild/vendor/plugins/acts_as_commentable/lib/commentable_methods.rb:1:in `<top (required)>' 

Мы видим, что это код на vendor/plugins, что делает его старым, Rails плагин 2,3-стиль. Они устарели в Rails 3 и полностью перестали работать в Rails 4. Они были заменены плагинами Gem, которые добавляются через ваш Gemfile и Bundler, а не vendor/plugins.

Таким образом, acts_as_commentable является хорошим кандидатом в качестве виновника. На странице Github project показана версия, особенно для Rails 3, поэтому удаление старого плагина и замена его этим Gem дает вам хороший шанс исправить эту проблему.

+0

Итак, если я правильно понял, мне в конечном итоге придется пройти через все папки поставщиков/плагинов и найти новую версию Rails 3 gem для каждого из них ? – camillavk

+0

Ничего подобного, боюсь, да ... у вас их много? – janfoeh

+0

Есть около 20 из них .... ну, я думаю, я знаю, что я делаю для остальной части моей пятницы в пятницу! :-D – camillavk

Смежные вопросы