【问题标题】:Why can't I get my ruby require's to work properly? [duplicate]为什么我的 ruby​​ 要求不能正常工作? [复制]
【发布时间】:2012-06-12 10:59:55
【问题描述】:

可能重复:
Why does Ruby 1.9.2 remove “.” from LOAD_PATH, and what's the alternative?
Require command not working within bash irb on Snow Leopard
Ruby require call fails on custom code

我在跑步:

  • OS X 10.6.8
  • RVM 1.12.3 与 Ruby 1.9.3

假设我的目录中有以下文件:

a.rb

require 'b'
puts message_from_b

b.rb

def message_from_b
    "foo"
end

我在运行 a.rb 时收到以下 LoadError:

/Users/Alex/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require': 无法加载这样的文件 -- b (加载错误)

但是,如果我将 a.rb 的第 1 行替换为 require './b',它可以正常工作。

在看别人的Ruby代码时,似乎不需要指定当前目录就可以要求同一目录下的文件。

那么,为什么我必须这样做?这与我的 RVM 安装有关吗?

【问题讨论】:

标签: ruby require ruby-1.9


【解决方案1】:

文件b.rb 不在您的加载路径中。将b.rb 的目录添加到您的加载路径

$LOAD_PATH.unshift(File.dirname(__FILE__)) # assuming it's the current directory

或使用

require_relative 'b'

【讨论】:

    猜你喜欢
    • 2019-01-22
    • 1970-01-01
    • 1970-01-01
    • 2019-08-29
    • 1970-01-01
    • 1970-01-01
    • 2014-11-20
    • 2021-09-25
    • 2023-04-07
    相关资源
    最近更新 更多