【发布时间】:2011-04-23 07:51:35
【问题描述】:
我在 Ruby 中导入文件时遇到了一个非常菜鸟的问题。我正在 Windows XP 中制作一个 Ruby 应用程序。该应用程序的所有类文件都在"C:/Documents/Prgm/Surveyor_Ruby/lib" 中。但是当我require一个文件在另一个文件中时,ruby和irb都找不到需要的文件。
当前目录的内容:
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 无法加载survey.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>'
【问题讨论】:
-
除了顶级解决方案之外,
require './survey'也可以使用。基本上你的当前目录在默认情况下实际上并不在搜索路径中,所以你必须明确地将 ruby 指向它,或者将它包含在搜索路径中。
标签: ruby import require irb ruby-1.9.2