нет такого файла для загрузки - active_support / core_ext (LoadError) - PullRequest
5 голосов
/ 31 января 2011

В моем приложении rails 2.3.8, работающем в Windows 7, появляется следующая ошибка при попытке запустить сервер:

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

В блоке пользовательских файлов требуется ниже ... строка 36 - "gem_original_requireпуть "

  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

список драгоценных камней выглядит следующим образом:

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)

Оглядывался с частями ошибки, но я не совсем уверен, с чего начать.

Ответы [ 2 ]

5 голосов
/ 12 июня 2012

Просто глядя на трассировку стека ... похоже, что ваше приложение находится на диске "D", а файлы ruby ​​- на диске "C".

Может быть, когда он выполняет требование

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

, ему требуется этот путь на «D», когда он должен быть на «С».Это мое лучшее предположение.Удачи.

1 голос
/ 31 января 2011

создайте имя файла

core_ext.rb

в

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

и отредактируйте, добавив содержимое в следующие строки

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}" }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...