我有以下问题:
我的 ruby 项目结构:Ruby_Source\ file1.rb file2.rb file3.rb
在 file1.rb 中,需要 'file2' 需要 'file3'
现在,如果我从 Ruby_Source 运行 file1.rb,我不会收到任何错误。
但是,当我从不同的系统位置运行相同的程序时,例如(c :)
错误是加载错误。
有人能帮助我吗?
我有以下问题:
我的 ruby 项目结构:Ruby_Source\ file1.rb file2.rb file3.rb
在 file1.rb 中,需要 'file2' 需要 'file3'
现在,如果我从 Ruby_Source 运行 file1.rb,我不会收到任何错误。
但是,当我从不同的系统位置运行相同的程序时,例如(c :)
错误是加载错误。
有人能帮助我吗?
您可能想使用require_relative
:
require_relative 通过允许您加载与包含 require_relative 语句的文件相关的文件来补充内置方法 require。
见进一步讨论:
Ruby 中的 require_relative 和 require 有什么区别?
如果你运行 Ruby 1.8:
Ruby:require vs require_relative - 在 Ruby <1.9.2 和 >=1.9.2 中运行的解决方法的最佳实践
尝试这个:
require_relative 'file2'
在 Ruby 1.9.x 中。它将file2
在目录中搜索file1
。
在旧版本中,您可能会尝试以下操作:
$: << File.dirname($0)
这会将当前程序的路径添加到require
-search 路径。