我正在研究Zed Shaw的“学习Ruby艰苦之路”练习25
http://ruby.learncodethehardway.org/ex25.html
当我导航到保存ruby文件ex25.rb并启动IRB的目录时,我收到以下错误:
Larson-2:~ larson$ cd Ruby
Larson-2:Ruby larson$ ls
ex25.rb
Larson-2:Ruby larson$ irb
ruby-1.9.2-p290 :001 > require 'ex25'
LoadError: no such file to load -- ex25
from /Users/larson/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
from /Users/larson/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
from (irb):1
from /Users/larson/.rvm/rubies/ruby-1.9.2-p290/bin/irb:16:in `<main>'
ruby-1.9.2-p290 :002 >
似乎require命令在这里不起作用。有什么我想念的吗?
我也尝试按照建议要求'./25'并获得这些错误:
Larson-2:Ruby larson$ irb
ruby-1.9.2-p290 :001 > require './ex25'
SyntaxError: /Users/larson/Ruby/ex25.rb:1: invalid multibyte char (US-ASCII)
from /Users/larson/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
from /Users/larson/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
from (irb):1
from /Users/larson/.rvm/rubies/ruby-1.9.2-p290/bin/irb:16:in `<main>'
答案 0 :(得分:14)
这是因为Ruby 1.9.2中的the working directory is no longer in the Ruby path。这确实有效:
require './ex25'
答案 1 :(得分:2)
在我写作练习时,这实际上是个错误。 @mischa在他的解决方案中很有用,但是当你在本书中逐步进行后续练习使用require_relative
命令而不是require
时,你会注意到。
here描述了确保工作目录位于加载路径中的各种方法,但我建议您选择一个并保持一致。