Ruby - LoadError on require

时间:2011-04-03 16:25:26

标签: ruby require

我有以下两个文件:main.rbsort.rb位于同一文件夹中。在main.rb我有以下代码:

require 'sort'

Sort.insertion_sort([1,2,3,4]).each {|x| print "#{x}, "}

当我尝试通过ruby main.rb运行时,我收到以下错误:

<internal:lib/rubygems/custom_require>:29:in `require': no such file to load -- sort (LoadError)
    from <internal:lib/rubygems/custom_require>:29:in `require'
    from main.rb:1:in `<main>'

任何想法为什么? 感谢

4 个答案:

答案 0 :(得分:6)

更好的使用方式

require_relative "sort"

而不是

require "sort"

谢谢,@JörgWMittag。

或者您可以添加ruby应该搜索文件的路径(可能存在安全风险):

$:.unshift File.join(File.dirname(__FILE__), ".") # current directory
require 'sort'

答案 1 :(得分:0)

尝试require 'sort.rb'并检查权限

答案 2 :(得分:0)

你也会:

require directory/sort.rb

答案 3 :(得分:0)

在Ruby 1.9.2中,$:不包含当前目录('.')。请改为relative_require或做$: << '.'

Joerg Mittag说不应该$: << '.',因为这是一个安全隐患。