为什么相对路径在Ruby中不起作用要求

阿玛纳特

我开始学习Ruby,这是我不了解的一件事,为什么require指令的相对路径在ruby中不起作用。它几乎适用于我现在使用的所有脚本语言(JSP,PHP ...)。我用一个真实的例子来解释。我有一个名为shapes的文件夹,其中包含3类shaperectangularsquare我还有另一个文件test_shapes.rb,可以在其中调用和测试我的课程。当我将类导入这样的主文件时:

require "./shape"
require "./rectangle"
require "./square"

我找不到文件错误。当我这样添加子文件夹的名称时:

require "./shapes/shape"
require "./shapes/rectangle"
require "./shapes/square"

该代码是完美的工作。因为我指定了项目根目录的完整路径(我认为是lib文件夹)。当包括在内时,我将包括硬盘的绝对路径,如下所示:

require "#{File.dirname(__FILE__)}/shape"
require "#{File.dirname(__FILE__)}/rectangle"
require "#{File.dirname(__FILE__)}/square"

它也运行得很好。

所以,我只想做一些解释,如果知道为什么第一个导入方法(当前文件夹的相对路径)不起作用。

纳西奥特

相对路径基于工作目录。我假设在同一目录中有主文件。如果您ruby ./shapes/main.rb在项目root上运行,ruby尝试查找{project_root}/shape.rb,而不是{project_root}/shapes/shape.rb没用

您需要使用require_relative如下所示。

# {project_root}/shapes/main.rb
require_relative './shape'
require_relative './rectangle'
require_relative './square'

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么我不能使用相对路径在CLion中打开文件?

相对路径在lobgack.xml包含文件中不起作用

为什么Ansible不读取相对路径中的模板?

为什么ghci不使用相对路径?

为什么Ruby'require'不允许相对路径?

PHP-使用pathinfo变量会使相对路径不起作用

file_exists相对路径不起作用

使用Webpack在React中解析相对路径不起作用

TypeScript相对路径导入在Webpack中不起作用

相对路径在Python中不起作用

img src根相对路径不起作用

图像的相对路径在React应用程序中不起作用?

Django CSS相对路径在Amazon S3中不起作用

为什么相对图像路径在我的React应用程序中不起作用?

文件操作在相对路径中不起作用

Angular RouterLink相对路径在具有空路径的组件中不起作用

C ++通过相对路径在目录外部打开文件不起作用

升级到vue-cli-4后,相对路径在标准导入中不再起作用

Flask中的相对路径

Aspnet MVC中的相对路径和绝对路径有什么区别?

django静态文件的相对路径不起作用

为什么本地文件中的相对路径被转换为绝对路径?

java json模式验证相对路径不起作用(找不到URI)

为什么可以在MacVim上使用相对路径和绝对路径?

PHP require_once绝对路径与相对路径(不起作用)

Cakephp 2.x相对路径不起作用,但absulate路径正在起作用

相对路径在Angular2组件中不起作用

cron管道到文件的相对路径不起作用

图片标签的相对路径不起作用

TOP 榜单

热门标签

归档