Jay
Jay

Reputation: 6244

no such file to load -- active_support/core_ext (LoadError)

In my rails 2.3.8 app running in windows 7, getting the following error when attempting to start the server:

D:\app1>ruby script/server
C:/Ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:36:in `gem_original_require': no such file to load -- active_support/core_ext (LoadError)
        from C:/Ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:36:in `require'
        from D:/app1/vendor/rails/activesupport/lib/active_support.rb:56
        from C:/Ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
        from C:/Ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require'
        from D:/app1/vendor/rails/railties/lib/commands/server.rb:1
        from C:/Ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
        from C:/Ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require'
        from script/server:3

In the custom require file block below... line 36 is "gem_original_require path"

  def require(path) # :doc:
    gem_original_require path
  rescue LoadError => load_error
    if load_error.message =~ /#{Regexp.escape path}\z/ and
       spec = Gem.searcher.find(path) then
      Gem.activate(spec.name, "= #{spec.version}")
      gem_original_require path
    else
      raise load_error
    end
  end

gem list as follows:

actionmailer (2.3.8)
actionpack (2.3.8)
activerecord (2.3.8)
activeresource (2.3.8)
activesupport (2.3.8)
builder (3.0.0)
calendar_date_select (1.16.1)
cgi_multipart_eof_fix (2.5.0)
gem_plugin (0.2.3)
google4r-checkout (1.0.6.1)
i18n (0.5.0)
liquid (2.2.2)
money (3.5.5)
mongrel (1.1.5 x86-mingw32)
mysql (2.8.1 x86-mingw32)
rack (1.1.0)
rails (2.3.8)
rake (0.8.7)
rmagick (2.12.0 mswin32)

Looked around with portions of the error, but I'm not quite sure where to start.

Upvotes: 5

Views: 6352

Answers (2)

engineerDave
engineerDave

Reputation: 3935

Just looking at the stack trace ... it looks like your application is on drive "D" and the ruby files are on drive "C".

Maybe when its performing the require

filenames = Dir["#{File.dirname(__FILE__)}/core_ext/*.rb"].sort.map do |path|
  File.basename(path, '.rb')
end

its requiring that path on "D" when it should be on "C". That's my best guess. Good luck.

Upvotes: 5

Senthil Kumar Bhaskaran
Senthil Kumar Bhaskaran

Reputation: 7461

create a file name

core_ext.rb

in the

 C:\Ruby\lib\ruby\gems\1.8\gems\activesupport-2.3.8\lib\active_support

and edit add the content to the following lines

filenames = Dir["#{File.dirname(__FILE__)}/core_ext/*.rb"].sort.map do |path|
  File.basename(path, '.rb')
end

# deprecated
filenames -= %w(blank)

filenames.each { |filename| require "active_support/core_ext/#{filename}" }

Upvotes: 1

Related Questions