2009-06-05 74 views
3

如果我有這樣的文件夾結構:在Ruby中'不需要'不自動包含子文件夾嗎?

rexml 
rexml/document 

爲以下語法不是遞歸引用,包括它下面的一切嗎?

require 'rexml' 

或者我需要編寫如下,如果我也想訪問什麼在'document'

require 'rexml/document' 

我感到困惑的原因是我看到一些代碼,其中作者寫道都需要陳述一個接一個:

require 'rexml' 
require 'rexml/document' 

我不確定這是否真的有必要。

回答

11

Ruby的標準require只加載Ruby文件,而不是文件夾或其他東西。當你說「require'rexml'」時,你實際上是在「尋找'rexml.rb'到$:中的一個路徑並加載它。」因此,「require'rexml/document'」在$:中的一個路徑中的文件夾「rexml」中查找文件「document.rb」。

6

在Ruby中,require只需要一個文件。在許多情況下,圖書館/寶石的作者將確保該單個文件需要使用該庫所需的所有其他代碼,但是 - 例如,參見these lines in the nokogiri library。然而,這可能因庫而異,在REXML的情況下,您似乎需要'rexml/document'。

相關問題