1

2 つの Ruby スクリプトがあり、それらのファイルを呼び出すと、エラーが発生します。

と がr1.rbありr2.rbます。私が呼び出すr1.rbr2.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

これがうまくいくかどうか教えてください

もう1つ追加させてください

を使用するときと同じ方法で、同じ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 に答える