Ruby LoadError:无法加载这样的文件--目录/文件名
我有一个像这样的文件结构Ruby LoadError:无法加载这样的文件--目录/文件名,ruby,Ruby,我有一个像这样的文件结构 root |--lib |--root.rb |--extensions |--strings.rb 我希望能够在root.rb文件中使用string.rb中的方法 因此,我在root.rb文件的顶部添加了require“extensions/strings” 但是我得到LoadError:无法加载这样的文件扩展名/strings.rb错误 我如何避免这种情况 我用了jandot的解决方案 Dir[File.dirname_uufile_u+'
root
|--lib
|--root.rb
|--extensions
|--strings.rb
我希望能够在root.rb文件中使用string.rb中的方法
因此,我在root.rb文件的顶部添加了require“extensions/strings”
但是我得到LoadError:无法加载这样的文件扩展名/strings.rb错误
我如何避免这种情况
我用了jandot的解决方案
Dir[File.dirname_uufile_u+'/extensions/*.rb']。每个{文件|需要文件}
经过一些测试后编辑
出于某种原因,这不会抛出任何错误消息,但它似乎没有加载实际的Ruby文件
我尝试将此添加到extensions/strings.rb
class Dog
def self.bark
puts "bark"
end
end
并在irb上运行
1.9.3-p0 :001 > require 'rhapsody'
=> true
1.9.3-p0 :002 > Dog
NameError: uninitialized constant Dog
from (irb):2
from /Users/jasonkim/.rvm/rubies/ruby-1.9.3-p0/bin/irb:16:in `<main>'
因此,出于某种原因,它没有在extensions/strings.rb中找到Dog类
在rubygems.org中读取guid后编辑
当我开始irb时,我必须去irb-Ilib-REX
导游这样解释情况
我们需要在这里使用一个奇怪的命令行标志:-Ilib。通常RubyGems为您提供lib目录,因此最终用户无需担心配置其加载路径。但是,如果您在RubyGems之外运行代码,则必须自己配置
我用了jandot的解决方案
Dir[File.dirname_uufile_u+'/extensions/*.rb']。每个{文件|需要文件}
经过一些测试后编辑
出于某种原因,这不会抛出任何错误消息,但它似乎没有加载实际的Ruby文件
我尝试将此添加到extensions/strings.rb
class Dog
def self.bark
puts "bark"
end
end
并在irb上运行
1.9.3-p0 :001 > require 'rhapsody'
=> true
1.9.3-p0 :002 > Dog
NameError: uninitialized constant Dog
from (irb):2
from /Users/jasonkim/.rvm/rubies/ruby-1.9.3-p0/bin/irb:16:in `<main>'
因此,出于某种原因,它没有在extensions/strings.rb中找到Dog类
在rubygems.org中读取guid后编辑
当我开始irb时,我必须去irb-Ilib-REX
导游这样解释情况
我们需要在这里使用一个奇怪的命令行标志:-Ilib。通常RubyGems为您提供lib目录,因此最终用户无需担心配置其加载路径。但是,如果您在RubyGems之外运行代码,则必须自己配置
您可以尝试以下方法:
require File.dirname(__FILE__) + "/extensions/strings"
您可以尝试以下方法:
require File.dirname(__FILE__) + "/extensions/strings"
如果您使用的是Ruby 1.9或更高版本,请使用require_relative。在root.rb中,写入:
require_relative 'extensions/strings.rb'
如果您使用的是Ruby 1.9或更高版本,请使用require_relative。在root.rb中,写入:
require_relative 'extensions/strings.rb'
对我有用
适合我。要求'lib/extensions/string'仍在加载错误:无法加载此类文件-lib/extensions/strings要求'lib/extensions/string'仍在加载错误:无法加载此类文件-lib/extensions/strings设置此设置。LoadError:无法加载这样的文件-/Users/jasonkim/.rvm/gems/ruby-1.9.3-p0/gems/rhapsody-0.0.1/lib/extensions/strings设置此文件。LoadError:无法加载这样的文件-/Users/jasonkim/.rvm/gems/ruby-1.9.3-p0/gems/rhapsody-0.0.1/lib/extensions/strings设置此文件。LoadError:无法加载这样的文件-/Users/jasonkim/.rvm/gems/ruby-1.9.3-p0/gems/rhapsody-0.0.1/lib/extensions/strings.rbrequire\u relative肯定能工作,所以如果它不适合您,那么我需要更多信息。你把陈述放在什么文件里了?该文件的完整路径是什么?strings.rb的完整路径是什么?一旦你开始提出正确的问题,这些问题就不难理解了。谢谢。所有的答案都是对的。我忘了提到的细节是,我试图将文件作为gem加载。获取此文件。LoadError:无法加载这样的文件-/Users/jasonkim/.rvm/gems/ruby-1.9.3-p0/gems/rhapsody-0.0.1/lib/extensions/strings.rbrequire\u relative肯定能工作,所以如果它不适合您,那么我需要更多信息。你把陈述放在什么文件里了?该文件的完整路径是什么?strings.rb的完整路径是什么?一旦你开始提出正确的问题,这些问题就不难理解了。谢谢。所有的答案都是对的。我忘记提到的细节是,我试图将文件作为gem加载。