Ruby:正确加载父目录中的文件,该文件依赖于另一个文件

标签 ruby load

我知道这是一个扭曲的标题...我是 ruby​​ 编程新手,这是我的问题:

有两个文件包含不同的函数,其中一个正在调用另一个

文件a.rb:
def f1(v1)......

文件b.rb:
load "a.rb"<br/> def f2(v2)......

以上两个文件都位于父目录中。现在如果我打电话b.rb在当前目录中使用 loadrequire ,我也会有同样的错误:

LoadError: cannot load such file -- <strong>a.rb</strong><br/> 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 <code>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</code>require' from /Users/username/<strong>b.rb</strong>:1:in `'

针对这种情况,我想出了两个解决方案:
1)输入f2进入文件a.rb .
2)或删除行load "a.rb"在文件b.rb中,和load我的实现中的这两个文件。

但我认为任何一种方式都会破坏这两个文件之间的逻辑关系/区别。这两个文件面临不同类型的问题,而函数f2没有 f1 就无法执行任何操作。

我的问题是:有没有办法将两个函数分开在两个文件中,同时只加载一次(不知道函数之间有任何依赖关系)?

最佳答案

在文件 b.rb 中:

require_relative "./a.rb"
def f2(v2)......

参见http://extensions.rubyforge.org/rdoc/classes/Kernel.html

关于Ruby:正确加载父目录中的文件,该文件依赖于另一个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17205348/

相关文章:

ruby-on-rails - PostgreSQL 与 Rails ActiveRecord 中的多个匹配相似

ruby - 我的Ruby编程代码有什么问题?

ruby-on-rails - Authlogic 不正确的密码验证错误

javascript - 如何加载测试 JavaScript/AngularJS 应用程序?

post - 用于具有不同参数的 POST 请求的 JMeter 替代方案(必须在没有 GUI 的情况下工作)

ruby-on-rails - Rails 3.2 Paperclip S3 未在本地主机中加载

json - 测试数组中哈希键的 Rubyist 方法

java - Java hashtablelload Factor == 1 是什么意思?

javascript - 自定义ajax菜单加载内容(图片)

java - 为什么在这种简单的情况下静态初始化程序 block 不运行?