6

次のファイル構造があります。

  • execute.rb
  • ライブラリ
    • my_class.rb

execute.rb には、以下のコードがあります。

#!/usr/bin/ruby

require 'lib/my_class'

my_object= MyClass.new

my_object.some_method

そして、これは my_class.rb のコードです:

class MyClass
    def some_method
        puts 'OK'
    end
end

だから、私はexecute.rbを実行しようとしました:

ruby execute.rb

しかし、私はこのエラーを受け取ります:

/home/vagrant/.rvm/rubies/ruby-2.0.0-p195/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:45:in `require': cannot load such file -- lib/my_class (LoadError)
    from /home/vagrant/.rvm/rubies/ruby-2.0.0-p195/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:45:in `require'
    from execute.rb:3:in `<main>'

誰でも私を助けることができますか?どんな助けにも感謝します。どうもありがとう。

4

2 に答える 2

7

@Dogbertのヒントに従ってこれを修正します。

execute.rb コードでは、以下を置き換える必要があります。

require 'lib/my_class'

為に:

require_relative 'lib/my_class'
于 2013-06-11T15:21:29.803 に答える
1

同じ問題がありました。load 'lib/my_class.rb' を使用することもできます。require_relative は .rb サフィックスを想定しているため、書き出す必要はありません。load には完全なファイル名が必要です。

于 2016-08-17T19:20:22.150 に答える