我在一个文件中定义了一个类,比如testAAA.rb
在目录中,我有另一个文件
我发现以下都是错误的
似乎我只能使用load" testAAA.rb"
我认为使用load" testAAA.rb"看起来很难看,我怎样才能正确使用"要求testAAA"在这种情况下
答案 0 :(得分:0)
require
在加载路径中搜索文件(位于$LOAD_PATH
全局,别名为$:
),默认情况下当前目录不在加载路径上(它曾经是早期版本的Ruby)。
有几种方法可以要求你想要的文件,这里最简单的可能就是使用require_relative
:
require_relative "testAAA"
这与此类似,它基于第一个文件显式构造了所需文件的绝对路径:
require File.expand_path("../testAAA", __FILE__)
您还可以使用./
显式加载相对于当前工作目录的文件:
require "./testAAA"
请注意,与相同,不需要相对于第一个文件的文件,工作目录可能与第一个文件所在的目录不同。如果您在同一目录中启动程序,它们将碰巧相同。
您还可以将相关目录添加到加载路径。您可能不希望为简单脚本执行此操作,在创建更大的应用程序时更有用:
$LOAD_PATH.unshift File.dirname(__FILE__) # or whatever directory you want to add
require 'foo'
答案 1 :(得分:-2)
如果您使用的是加载方法,则必须包含扩展名.rb。如果您使用的是require语句,则省略扩展名。示例如下;
load 'yourfilehere.rb'
require 'yourfilehere'