Ruby require_relative路径

时间:2018-01-05 23:31:19

标签: ruby-on-rails ruby

所以只是为了完美清楚...... Ruby无法处理

require 'filename'

表示同一目录中的文件。

*无论脚本执行的位置如何。

**但即使是从同一地点执行。

我对编程很新,但是......我必须在这里遗漏一些东西。 安全风险 尽管

Rails对它自己的负载路径情况很满意,所以一切都很好用。 但是,只要我想在其中一个文件上运行脚本“ruby说不”。

有人可以帮帮我吗?

谢谢@pcm(写评论太多了)

在新手游戏中确信这是一个低绊网。

好。 Lesseons学到了。

不要与铁道战斗:只是允许你的测试抓住任何玩弄棘手的重构。是的...... Newbs,只是直接在测试生态系统中消除痛苦。

require './filename' 

仅在$ ruby​​ script.rb与require ./filename文件所在的目录中运行时才有效。这是因为,这些文件中的一个可能需要打开一些其他文件进行读取/编辑/预处理等,例如

File.open("./file.txt").readlines.each do |line|

现在,即使两个文件位于同一位置“我认为”,也会使用调用脚本的位置来打开它,即

$ruby path/to/file.rb 

所以抛出扳手。

但是。如果有人能借这些经验吗?就这样,我知道我是否真的疯了。如果没有指定文件路径,我原本期望任何编译器/解释器期望文件在文件的目录/位置调用/使用/访问它?

1 个答案:

答案 0 :(得分:1)

您需要在文件名前添加一个点和斜杠才能要求同一目录中的文件。

require './filename'

require关键字不知道当前工作目录,需要点和正斜杠。 require_relative没有相同的限制。