Ruby 1.9.2的最新更改集不再使当前目录.成为LOAD_PATH的一部分.我有很多rakefile,它们假设.LOAD_PATH的一部分,所以这就 destruct 了它们(它们报告说,对于基于项目路径的所有require语句,"没有这样的文件要加载").这样做有什么特别的理由吗?

至于修复方法,在everywhere中添加$: << "."是可行的,但似乎有点骇人听闻,我不想这么做.让我的Rakefiles 1.9.2+兼容的首选方法是什么?

推荐答案

这被认为是一种"安全"风险.

你可以使用绝对路径绕过它

File.expand_path(__FILE__) et al

或者做什么

require './filename' (ironically).

或者使用

require_relative 'filename'

或者添加一个"包含"目录

ruby -I . ...

或者同样,使用irb;

$irb -I .

Ruby相关问答推荐

try 安装Chruby时出现问题,终端问题

带有虾Ruby 的动态标题

Ruby错误-应为数组或字符串,已获取哈希

Ruby 扁平化 JSON 对象或哈希

Ruby 中的 Float#floor 和 Float#to_i 有什么区别?

使用正则表达式判断用户输入的开头是否正好有两个大括号

ruby `encode': "\xC3" 从 ASCII-8BIT 到 UTF-8 (Encoding::UndefinedConversionError)

用于 ruby​​ gems 的新 10.9 OSX 的命令行工具?

Puppet/Facter无法检索事实 fqdn:如何修复或规避?

如何在Ruby中获取终端窗口的宽度

如何在 ruby​​ net/http 中实现 cookie 支持?

使用 for each 时识别最后一个循环

Ruby - 在模块/类之间共享记录器实例

Ruby 的所有/最佳列表?

从 Ruby 中的 URL 获取文件名的好方法是什么?

如何在 ruby​​ 中进行命名捕获

正则表达式,如何匹配多行?

使用正则表达式进行 Ruby Electron邮件验证

=== 与 == 在 Ruby 中

如何在 Mac OS Sierra 10.12 上安装 Nokogiri