簡體   English   中英

無法加載此類文件-activerecord(LoadError)

[英]cannot load such file — activerecord (LoadError)

我正在嘗試將一個非常老的應用程序從Rails 2.3.12升級到Rails 3.0.0(作為將其升級到Rails 4的起點)。 我一直在慢慢地通過刪除舊寶石等方法來修復升級后發生的任何故障。

我陷入了一個似乎無法查明或解決的問題。

我正在運行Rails3,Ruby1.9.3

當我嘗試運行Rails服務器時,出現以下錯誤:

    => 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/ruby-1.9.3-p551@rails3/gems/activesupport-3.0.0/lib/active_support/dependencies.rb:239:in `require': cannot load such file -- activerecord (LoadError)
        from /home/camillavk/.rvm/gems/ruby-1.9.3-p551@rails3/gems/activesupport-3.0.0/lib/active_support/dependencies.rb:239:in `block in require'
        from /home/camillavk/.rvm/gems/ruby-1.9.3-p551@rails3/gems/activesupport-3.0.0/lib/active_support/dependencies.rb:225:in `block in load_dependency'
        from /home/camillavk/.rvm/gems/ruby-1.9.3-p551@rails3/gems/activesupport-3.0.0/lib/active_support/dependencies.rb:591:in `new_constants_in'
        from /home/camillavk/.rvm/gems/ruby-1.9.3-p551@rails3/gems/activesupport-3.0.0/lib/active_support/dependencies.rb:225:in `load_dependency'
        from /home/camillavk/.rvm/gems/ruby-1.9.3-p551@rails3/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/ruby-1.9.3-p551@rails3/gems/activesupport-3.0.0/lib/active_support/dependencies.rb:239:in `require'
        from /home/camillavk/.rvm/gems/ruby-1.9.3-p551@rails3/gems/activesupport-3.0.0/lib/active_support/dependencies.rb:239:in `block in require'
        from /home/camillavk/.rvm/gems/ruby-1.9.3-p551@rails3/gems/activesupport-3.0.0/lib/active_support/dependencies.rb:225:in `block in load_dependency'
        from /home/camillavk/.rvm/gems/ruby-1.9.3-p551@rails3/gems/activesupport-3.0.0/lib/active_support/dependencies.rb:591:in `new_constants_in'
        from /home/camillavk/.rvm/gems/ruby-1.9.3-p551@rails3/gems/activesupport-3.0.0/lib/active_support/dependencies.rb:225:in `load_dependency'
        from /home/camillavk/.rvm/gems/ruby-1.9.3-p551@rails3/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/ruby-1.9.3-p551@rails3/gems/activesupport-3.0.0/lib/active_support/dependencies.rb:239:in `require'
        from /home/camillavk/.rvm/gems/ruby-1.9.3-p551@rails3/gems/activesupport-3.0.0/lib/active_support/dependencies.rb:239:in `block in require'
        from /home/camillavk/.rvm/gems/ruby-1.9.3-p551@rails3/gems/activesupport-3.0.0/lib/active_support/dependencies.rb:225:in `block in load_dependency'
        from /home/camillavk/.rvm/gems/ruby-1.9.3-p551@rails3/gems/activesupport-3.0.0/lib/active_support/dependencies.rb:591:in `new_constants_in'
        from /home/camillavk/.rvm/gems/ruby-1.9.3-p551@rails3/gems/activesupport-3.0.0/lib/active_support/dependencies.rb:225:in `load_dependency'
        from /home/camillavk/.rvm/gems/ruby-1.9.3-p551@rails3/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/ruby-1.9.3-p551@rails3/gems/railties-3.0.0/lib/rails/plugin.rb:81:in `eval'
        from /home/camillavk/.rvm/gems/ruby-1.9.3-p551@rails3/gems/railties-3.0.0/lib/rails/plugin.rb:81:in `block in <class:Plugin>'
        from /home/camillavk/.rvm/gems/ruby-1.9.3-p551@rails3/gems/railties-3.0.0/lib/rails/initializable.rb:25:in `instance_exec'
        from /home/camillavk/.rvm/gems/ruby-1.9.3-p551@rails3/gems/railties-3.0.0/lib/rails/initializable.rb:25:in `run'
        from /home/camillavk/.rvm/gems/ruby-1.9.3-p551@rails3/gems/railties-3.0.0/lib/rails/initializable.rb:50:in `block in run_initializers'
        from /home/camillavk/.rvm/gems/ruby-1.9.3-p551@rails3/gems/railties-3.0.0/lib/rails/initializable.rb:49:in `each'
        from /home/camillavk/.rvm/gems/ruby-1.9.3-p551@rails3/gems/railties-3.0.0/lib/rails/initializable.rb:49:in `run_initializers'
        from /home/camillavk/.rvm/gems/ruby-1.9.3-p551@rails3/gems/railties-3.0.0/lib/rails/application.rb:134:in `initialize!'
        from /home/camillavk/.rvm/gems/ruby-1.9.3-p551@rails3/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/ruby-1.9.3-p551@rails3/gems/activesupport-3.0.0/lib/active_support/dependencies.rb:239:in `require'
        from /home/camillavk/.rvm/gems/ruby-1.9.3-p551@rails3/gems/activesupport-3.0.0/lib/active_support/dependencies.rb:239:in `block in require'
        from /home/camillavk/.rvm/gems/ruby-1.9.3-p551@rails3/gems/activesupport-3.0.0/lib/active_support/dependencies.rb:225:in `block in load_dependency'
        from /home/camillavk/.rvm/gems/ruby-1.9.3-p551@rails3/gems/activesupport-3.0.0/lib/active_support/dependencies.rb:591:in `new_constants_in'
        from /home/camillavk/.rvm/gems/ruby-1.9.3-p551@rails3/gems/activesupport-3.0.0/lib/active_support/dependencies.rb:225:in `load_dependency'
        from /home/camillavk/.rvm/gems/ruby-1.9.3-p551@rails3/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/ruby-1.9.3-p551@rails3/gems/rack-1.2.8/lib/rack/builder.rb:46:in `instance_eval'
        from /home/camillavk/.rvm/gems/ruby-1.9.3-p551@rails3/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/ruby-1.9.3-p551@rails3/gems/rack-1.2.8/lib/rack/builder.rb:35:in `eval'
        from /home/camillavk/.rvm/gems/ruby-1.9.3-p551@rails3/gems/rack-1.2.8/lib/rack/builder.rb:35:in `parse_file'
        from /home/camillavk/.rvm/gems/ruby-1.9.3-p551@rails3/gems/rack-1.2.8/lib/rack/server.rb:162:in `app'
        from /home/camillavk/.rvm/gems/ruby-1.9.3-p551@rails3/gems/rack-1.2.8/lib/rack/server.rb:253:in `wrapped_app'
        from /home/camillavk/.rvm/gems/ruby-1.9.3-p551@rails3/gems/rack-1.2.8/lib/rack/server.rb:204:in `start'
        from /home/camillavk/.rvm/gems/ruby-1.9.3-p551@rails3/gems/railties-3.0.0/lib/rails/commands/server.rb:65:in `start'
        from /home/camillavk/.rvm/gems/ruby-1.9.3-p551@rails3/gems/railties-3.0.0/lib/rails/commands.rb:30:in `block in <top (required)>'
        from /home/camillavk/.rvm/gems/ruby-1.9.3-p551@rails3/gems/railties-3.0.0/lib/rails/commands.rb:27:in `tap'
        from /home/camillavk/.rvm/gems/ruby-1.9.3-p551@rails3/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上找不到任何有關此事的...。

還是有人對我如何查找/解決問題有建議?

提前謝謝了!

讓我們看看您的堆棧跟蹤。 堆棧跟蹤從上到下讀取。 如果您有函數A調用函數B調用函數C,但發生錯誤,則堆棧跟蹤將顯示

C
B
A

我們可以看到第一行都來自Rails本身:

/home/camillavk/.rvm/gems/ruby-1.9.3-p551@rails3/gems/activesupport-3.0.0/lib/active_support/dependencies.rb:239:in `require': cannot load such file -- activerecord (LoadError)
        from /home/camillavk/.rvm/gems/ruby-1.9.3-p551@rails3/gems/activesupport-3.0.0/lib/active_support/dependencies.rb:239:in `block in require'
        from /home/camillavk/.rvm/gems/ruby-1.9.3-p551@rails3/gems/activesupport-3.0.0/lib/active_support/dependencies.rb:225:in `block in load_dependency'
        from /home/camillavk/.rvm/gems/ruby-1.9.3-p551@rails3/gems/activesupport-3.0.0/lib/active_support/dependencies.rb:591:in `new_constants_in'
        from /home/camillavk/.rvm/gems/ruby-1.9.3-p551@rails3/gems/activesupport-3.0.0/lib/active_support/dependencies.rb:225:in `load_dependency'
        from /home/camillavk/.rvm/gems/ruby-1.9.3-p551@rails3/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中的工作。它們被通過您的Gemfile和Bundler添加的“ Gem插件”代替,而不是vendor/plugins

因此, acts_as_commentable是元凶。 Github項目頁面顯示了一個特別適用於Rails 3的版本,因此刪除舊插件並用Gem替換它可以使您很好地解決此問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM