要求不工作 Ruby

Require Not Working in Ruby

我有两个文件 person.rb 和 contact_info.rb,person.rb 文件包含一个 class,contact_info.rb 文件包含一个模块。当我在 irb 中加载 'person.rb' 时,当加载 'contact_info.rb' 位于该文件的顶部时,这工作正常。

当我将其切换为在 person.rb 文件顶部要求 'contact_info.rb' 时,并且在 irb 中要求 'person.rb' 我得到一个错误(我已经将错误包含在此文本的底部,它使用了完全不同的文件路径。

我用谷歌搜索了一些解决方案,例如使用“./person.rb”和 require_relative 'person',但这些都不起作用。

我简化了文件中的代码以使事情变得更容易。

任何帮助都会很棒。

person.rb 文件中的代码

require 'contact_info.rb'
  class Person
    include ContactInfo
  end

contact_info.rb 文件中的代码

module  ContactInfo
  #some code
end

我收到的错误消息 - 当我在 irb 中输入 require 'person.rb' 时。

**注意 - 当我将文件拖入命令行时,文件路径为 /Volumes/New\ Passport/All\ Creative/Ruby/module_folder_tut/person.rb

LoadError: cannot load such file -- person.rb
  from /Users/paulknight/.rvm/rubies/ruby-2.4.1/lib/ruby/site_ruby/2.4.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /Users/paulknight/.rvm/rubies/ruby-2.4.1/lib/ruby/site_ruby/2.4.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from (irb):1
from /Users/paulknight/.rvm/rubies/ruby-2.4.1/bin/irb:11:in `<main>'

默认情况下,当前目录不在 ruby 搜索路径中。将其添加到 $:,一切都会好起来的(假设您从 person.rb 所在的目录启动 irb):

$: << "."
require "person.rb"

More detailed info.