为什么我不能要求' string.rb'文件在ruby中

时间:2014-10-08 15:36:17

标签: ruby string gem require

我正在实现gem,我想为String类添加一些自定义方法。所以,我在'lib'目录下创建了子目录'core_ext',并在那里放置了'string.rb'文件。

string.rb包含:

class String
  def custom_method
    some_action
  end
end

在我的主文件中:

require 'core_ext/string.rb'

但它对String类没有任何影响,

如果我将文件的名称更改为其他名称,例如“my_string.rb”并使用require更改行,则一切都将正常运行。为什么我不能使用'string.rb'作为文件名?

1 个答案:

答案 0 :(得分:1)

如果有一个名为core_ext/string的文件已经在其他任何地方加载过,那么这个文件也被视为已加载。您可能需要提出不同的名称。

p11y指出的Ruby 1.9的require_relative功能是一个更好的解决方案。