代码之家  ›  专栏  ›  技术社区  ›  Bad Request

ruby和irb都不能在当前目录中加载.rb文件

  •  28
  • Bad Request  · 技术社区  · 15 年前

    我在Ruby中导入文件时遇到了一个麻烦。我正在用windowsxp制作一个Ruby应用程序。应用程序的所有类文件都在 "C:/Documents/Prgm/Surveyor_Ruby/lib" . 但是当我 require

    当前目录的内容:

    C:\Documents\Prgm\Surveyor_Ruby\lib>dir
     Volume in drive C has no label.
     Volume Serial Number is AAAA-BBBB
    
     Directory of C:\Documents\Prgm\Surveyor_Ruby\lib
    
    10/09/2010  06:32 PM    <DIR>          .
    10/09/2010  06:32 PM    <DIR>          ..
    10/08/2010  03:22 PM             5,462 main (commented).rb
    10/08/2010  03:41 PM                92 question.rb
    10/08/2010  09:06 PM             2,809 survey.rb
    10/09/2010  06:25 PM               661 surveyor.rb
    10/08/2010  01:39 PM             1,546 test.rb
                   5 File(s)         10,570 bytes
                   2 Dir(s)  40,255,045,632 bytes free
    

    确认irb在正确的目录中:

    C:\Documents\Prgm\Surveyor_Ruby\lib>irb
    irb(main):001:0> Dir.pwd
    => "C:/Documents/Prgm/Surveyor_Ruby/lib"
    

    …但irb无法加载调查.rb:

    irb(main):002:0> require 'survey'
    LoadError: no such file to load -- survey
            from <internal:lib/rubygems/custom_require>:29:in `require'
            from <internal:lib/rubygems/custom_require>:29:in `require'
            from (irb):2
            from C:/Ruby192/bin/irb:12:in `<main>'
    
    7 回复  |  直到 13 年前
        1
  •  63
  •   AdrianoFerrari    14 年前

    这些对我来说都不管用,但这确实有用:

    irb -I .
    >require 'file'
     => true
    
        2
  •  11
  •   nurettin João    13 年前
    require './hede'
    

    require_relative 'hede'
    

        3
  •  9
  •   bpd1069    15 年前

    注意到同样的行为,但我的linux根让我尝试: .\file.rb

        4
  •  8
  •   Darme    13 年前

    ➜ $ irb
    > require "#{Dir.pwd}/file_to_load.rb"
    => true 
    
        5
  •  3
  •   Andrew Grimm Alex Wayne    15 年前

    很脏,但是你可以在第一行做:

    $: << '.'
    

    然后你就去了。 它对于使用IRB进行交互式/创造性测试非常有用

        6
  •  2
  •   user469809 user469809    15 年前

    我相信前面的两篇文章都是正确的,只是有不同的用途。在IRB中使用绝对路径 require ,以及您也可以使用的文件 require_relative .

        7
  •  1
  •   jonsca    13 年前

    rvmsudo irb -I '/Absolute/path/to/your/project'
    
    推荐文章