1

我有两个 Ruby 脚本,我正在调用这些文件,但出现错误。

我有r1.rbr2.rb。当我打电话时,r1.rb我收到此错误:r2.rbr3.rb

C:/Ruby193/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require': cannot load such file -- r1 (LoadError)
        from C:/Ruby193/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
        from r3.rb:1:in `<main>'

r1.rb 是:

def random
    rand(1000000)
end

r2.rb 是:

def random
    (rand(26) + 65).chr
end

r3.rb 是:

require 'r1'
require 'r2'

puts random
4

1 回答 1

-1

使用 require 时的拇指规则,总是在 require 语句中使用路径 [主要是在使用 windows 平台时]

如果你使用load你需要放置filename.rb但不需要传递文件路径。[首先检查需求并使用负载,因为每次调用时都会在内存中加载]

在这里我正在修改你的代码

require 'C:/PLACE YOUR FILE PATH HERE/r1'
require 'C:/PLACE YOUR FILE PATH HERE/r2'

puts random

请让我知道这是否适合您

让我再补充一件事

使用方式相同,必须使用irb相同的方式

>irb
irb(main):001:0> require 'c:/rubycode/test.rb'
=> true

@jdoe 建议require_relative这是个好方法

但我得到以下错误

irb(main):001:0> require_relative 'test'
LoadError: cannot infer basepath
        from (irb):1:in `require_relative'
        from (irb):1
        from C:/Ruby193/bin/irb:12:in `<main>'

irb(main):002:0> require_relative 'rubycode/test'
LoadError: cannot infer basepath
        from (irb):2:in `require_relative'
        from (irb):2
        from C:/Ruby193/bin/irb:12:in `<main>'

irb(main):003:0> require_relative 'c:/rubycode/test'
LoadError: cannot infer basepath
        from (irb):3:in `require_relative'
        from (irb):3
        from C:/Ruby193/bin/irb:12:in `<main>'

irb(main):004:0> require 'c:/rubycode/test'
=> true
irb(main):005:0>
于 2012-06-11T17:29:30.940 回答