亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為什么Ruby 1.9.2從LOAD_PATH中刪除“。”,還有什么替代方案?

為什么Ruby 1.9.2從LOAD_PATH中刪除“。”,還有什么替代方案?

蕪湖不蕪 2019-07-25 18:55:00
為什么Ruby 1.9.2從LOAD_PATH中刪除“?!保€有什么替代方案?Ruby 1.9.2的最新變更集不再使當前目錄.成為您的目錄LOAD_PATH。我有一些非常重要的Rakefiles假設它.是其中的一部分LOAD_PATH,所以這打破了它們(他們報告“沒有這樣的文件加載”所有基于項目路徑的require語句)。這樣做有什么特別的理由嗎?至于一個修復,添加$: << "."到處都有效,但看起來非常hacky,我不想這樣做。使Rakefiles 1.9.2+兼容的首選方法是什么?
查看完整描述

3 回答

?
達令說

TA貢獻1821條經驗 獲得超6個贊

這被視為“安全”風險。

您可以使用絕對路徑繞過它

File.expand_path(__FILE__) et al

或做

require './filename' (ironically).

或者通過使用

require_relative 'filename'

或添加“包含”目錄

ruby -I . ...

或者相同,使用irb;

$irb -I .


查看完整回答
反對 回復 2019-07-25
?
紅糖糍粑

TA貢獻1815條經驗 獲得超6個贊

正如其他人的回答指出的那樣,這是一個安全風險,因為.在您的加載路徑中引用了當前的工作目錄Dir.pwd,而不是當前正在加載的文件的目錄。因此,無論誰執行您的腳本,只需通過cd另一個目錄即可更改。不好!

我一直在使用構建的完整路徑__FILE__作為替代方案。

require File.expand_path(File.join(File.dirname(__FILE__), 'filename'))

require_relative此不同,這與Ruby 1.8.7向后兼容。


查看完整回答
反對 回復 2019-07-25
  • 3 回答
  • 0 關注
  • 701 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號