没有要加载的文件 - active_support / core_ext(LoadError)

时间:2011-01-31 03:08:28

标签: ruby-on-rails

在Windows 7中运行我的rails 2.3.8应用程序时,尝试启动服务器时出现以下错误:

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 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

宝石清单如下:

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 个答案:

答案 0 :(得分:5)

只看堆栈跟踪......看起来你的应用程序在驱动器“D”上,ruby文件在驱动器“C”上。

可能在执行要求时

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

当它应该在“C”时,它要求“D”上的路径。这是我最好的猜测。祝你好运。

答案 1 :(得分:1)

创建文件名

  

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}" }