我有以下两个文件:main.rb
和sort.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>'
任何想法为什么? 感谢
答案 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说不应该$: << '.'
,因为这是一个安全隐患。