我知道这是一个扭曲的标题......我是一个 ruby 编程新手,这是我的问题:
有两个文件包含不同的功能,其中一个正在调用另一个
文件 a.rb:
def f1(v1)......
文件 b.rb:
load "a.rb"
def f2(v2)......
以上两个文件都在父目录中。b.rb
现在,如果我使用load
or调用当前目录require
,我将遇到相同的错误:
LoadError: cannot load such file -- a.rb
from /Users/username/.rvm/rubies/ruby-2.0.0-p0/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:45:in require'
from /Users/username/.rvm/rubies/ruby-2.0.0-p0/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:45:in
require'
from /Users/username/b.rb:1:in `'
对于这种情况,我想出了两个解决方案:
1)放入f2
文件a.rb
。
2)或删除load "a.rb"
文件中的行b.rb
,以及load
我的实现中的两个文件。
但我认为任何一种方式都会破坏这两个文件之间的逻辑关系/区别。这两个文件面临不同类型的问题,而f2
没有f1
.
我的问题是:有没有办法将两个文件中的两个函数分开,同时只加载一次(不知道函数之间的任何依赖关系)?