我正在做Ruby Koans教程,使用notepad++。
about_triangle_project.rb似乎无法加载triangle.rb文件。
no such file to load -- triangle.rb <LoadError>
from <internal:lib/rubygems/custom_require>:29:in 'require'
from about_triangle_project.rb:4: in '<main>'但是,我不认为我已经修改了这些文件。(我试图修复它,但总是在它们不起作用时取消它们)……下面是about_triangle_project.rb中的代码
require File.expand_path(File.dirname(__FILE__) + '/edgecase')
require 'triangle.rb' # this is line 4
class AboutTriangleProject < EdgeCase::Koan
def test_equilateral_triangles_have_equal_sides
assert_equal :equilateral, triangle(2, 2, 2)
assert_equal :equilateral, triangle(10, 10, 10)
end
(etc)我试着要求‘三角形’,那不起作用。我尝试使用绝对路径名,但不起作用。
triangle.rb文件在相同的目录中,未经修改,带有注释和以下内容:
def triangle(a,b,c)
end
class TriangleError < StandardError
endtriangle.rb文件确实存在于同一目录中,为什么找不到?我希望我没有遗漏一些显而易见的东西!
发布于 2011-10-30 19:35:42
在Windows上,将当前目录添加到加载路径似乎并不能正常工作。用require 'triangle.rb'代替require_relative 'triangle.rb'应该是可行的,但这有点麻烦。我不使用Windows,所以我不确定正确的解决方案是什么。
发布于 2014-05-28 03:02:19
我肯定会考虑获得一个Sublime文本编辑器的版本,它让事情变得更加清晰,而且你实际上可以在其中打开文件夹。
看起来你的路径是错误的,我会说确保你代码中triangle.rb的地址是正确的。
我的看起来更像这样
neo需要File.expand_path(File.dirname(FILE) +‘/
’)
#您需要在文件'triangle.rb‘中编写三角形方法
需要‘./三角形’
发布于 2021-09-01 13:07:52
我现在正在跟Koans一起学习ruby,也发现了这个问题。
所以在我们身上发生的事情是,运行代码的当前工作目录(cwd)会影响ruby的require方法。例如,您需要使用cd .\.ruby\koans\将cwd所在的位置更改为所有koan的文件夹。或者,正如Ben Langfeld回答的那样,require_relative 'triangle'是一个很好且简单的替代方案。
要了解更多信息,我建议查看这个What is the difference between require_relative and require in Ruby?线程。我从中得到的结论是,require更适合用于已安装的gem和库,而require_relative更适合于您编写的代码。
https://stackoverflow.com/questions/7373067
复制相似问题