【问题标题】:strange inability to require config/boot after upgrading to ruby 1.9.2升级到 ruby​​ 1.9.2 后奇怪的无法要求配置/引导
【发布时间】:2015-03-26 19:52:37
【问题描述】:

我将我的 ruby​​ 升级到 1.9.2,现在当我尝试使用脚本/服务器启动 Rails 2.3.5 应用程序时,出现以下错误:

<internal:lib/rubygems/custom_require>:29:in `require': no such file to load -- script/../config/boot (LoadError)
        from <internal:lib/rubygems/custom_require>:29:in `require'
        from script/server:2:in `<main>'

但是 script/server:2 看起来肯定是正确的,并且文件 config/boot.rb 存在于正确的位置。

【问题讨论】:

    标签: ruby-on-rails ruby


    【解决方案1】:

    更简单,不需要修改所有脚本:

    代替:

    script/server 
    

    呼叫:

    ./script/server
    

    【讨论】:

    • 这太棒了。帮我解决了 Gitorious。
    • File.dirname(FILE) + '/../confg/boot' (用于服务器)从调用命令中获取目录名。当您调用“脚本/服务器”时,它会尝试使用 LOAD_PATH 查找“脚本/../config/boot”(不成功)。当您调用 './script/server' 时,它会转换为 './script/../config/boot' - 当前目录在路径中显式。
    • 也试过了,但还是不行:script/server /usr/local/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in require': cannot load such file -- test/unit/error (LoadError) from /usr/local/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in require'
    【解决方案2】:

    将脚本/服务器的第 2 行替换为

    require File.expand_path('../../config/boot', __FILE__)

    为我工作(取自 Rails 3)

    【讨论】:

    • 试过了,但仍然得到 script/server /usr/local/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in require': cannot load such file -- test/unit/error (LoadError) from /usr/local/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in require' 我错过了什么?跨度>
    【解决方案3】:

    这是因为 ruby​​ 1.9.2 没有在 LOAD_PATH 中添加当前目录。

    将此添加到您的脚本/服务器文件的顶部:

    $: << File.dirname(__FILE__)
    

    或者在你的情况下:

    $: << File.dirname(__FILE__) + '..'
    

    【讨论】:

    • 不工作:./server /usr/local/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in require': cannot load such file -- . (LoadError) from /usr/local/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in require' 来自 ./server:3:in `
      ' 我错过了什么?
    【解决方案4】:

    我遇到了与描述完全相同的问题。 Ubuntu 10.04 x64、Eclipse Helio、带有 RadRail 的 AptanaStudion2、Ruby 1.9.2、Rails 2.3.5 这对我不起作用:

    require File.expand_path('../../config/boot', __FILE__)
    

    这对我有用

    require File.expand_path(__FILE__)+ '/../../config/boot'
    

    【讨论】:

    • 在设置 gitorious 时遇到了类似的问题,这也是我的解决方案。
    【解决方案5】:

    $: &lt;&lt; File.dirname(__File__) + '..' 将不起作用,因为您将获得

    的目录

    '脚本..'

    试试

    $: << File.join(File.dirname(__FILE__),'..')
    

    【讨论】:

    • 不工作:./server /usr/local/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in require': cannot load such file -- ./.. (LoadError) from /usr/local/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in require' 来自 ./server:3:in `
      ' 我错过了什么?
    【解决方案6】:

    您可以尝试添加路径 源 /usr/share/ruby-rvm/scripts/rvm

    【讨论】:

      【解决方案7】:

      请在启动 padrino 之前检查您的根路径。 就像如果您的应用程序在“C:\XXXXXXX\YYYYYYY\ZZZ-padrino”中并且您在命令提示符中位于“C:\XXXXXXX\YYYYYYY\”中,则会发生此错误。 那么你应该在“C:\XXXXXXX\YYYYYYY\ZZZ-padrino”中。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-09-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多