4

我一直认为这种事情很丑:

require File.join(File.dirname(__FILE__), 'hirb/config')

有没有更漂亮的替代方案,也许是为 Rails 编写的?

require_relative 'hirb/config'
require_relative '../another/file'
4

3 回答 3

7

最好的方法可能是准备你的加载路径,所以你不需要做所有这些。您的主模块或初始化文件引入其他几个位置并不是特别困难。

这也受 RUBYLIB 环境变量以及 -I 命令行参数的影响。

$: << File.expand_path(File.join('..', 'lib'), File.dirname(__FILE__))
于 2009-10-07T17:48:08.877 回答
6

你可以做

Dir.chdir(File.dirname(__FILE__) do
  require 'hirb/config'
  require '../another/file'
end

当然,这是否更好是一个品味问题。

于 2009-10-07T17:14:12.813 回答
4

您可以扩展内核

module Kernel
    def require_relative(path)
      require File.join(File.dirname(caller[0]), path.to_str)
    end
end
于 2009-10-07T20:25:39.087 回答