ruby - 为什么 Ruby 1.9.2 从 LOAD_PATH 中删除 ".",还有什么替代方案?

标签 ruby rake require load-path

Ruby 1.9.2 的最新变更集不再生成当前目录 .你的一部分 LOAD_PATH .我有很多 Rakefile 假设 .LOAD_PATH 的一部分,所以这打破了他们(他们报告所有基于项目路径的 require 语句“没有这样的文件要加载”)。这样做有什么特别的理由吗?

至于修复,添加 $: << "."无处不在,但似乎非常骇人听闻,我不想那样做。使我的 Rakefiles 1.9.2+ 兼容的首选方法是什么?

最佳答案

它被认为是“安全”风险。

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

File.expand_path(__FILE__) et al

或做

require './filename' (ironically).

或使用

require_relative 'filename'

或者添加一个“include”目录

ruby -I . ...

还是一样,使用irb;

$irb -I .

关于ruby - 为什么 Ruby 1.9.2 从 LOAD_PATH 中删除 ".",还有什么替代方案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2900370/

相关文章:

ruby - 使用 PG gem 在参数化语句中进行多次插入

ruby-on-rails - Rails rake 任务在运行时不断消耗更多 RAM(使用 Mechanize 抓取网站)

javascript - 使用 Node.js require 和 CoffeeScript 中的类解决循环依赖

ruby-on-rails - lib中的子文件夹

javascript - Node.js:哪个模块到 "require(' 。 .')"使用socket.io?

ruby - 动态解构 Ruby block 参数

ruby - ruby 中用于搜索空间数据的不错的(r 树、四叉树或类似)库

javascript - 在 Ruby 和 JavaScript 中解析 .net DateTime

ruby-on-rails - 使用 Delegator 类时出现 ArgumentError

ruby - ActiveRecord 需要 ruby​​ 版本 >= 2.2.2