我上課是這樣的:如何組織目錄和文件嵌套類
require 'active_support/core_ext'
class Shelf
def initialize
@books = {}
end
def book(code: code)
@books[code] if @books.has_key?(code)
@books = Book.new(code: code)
end
end
class Shelf::Book
def initialize(code: code)
@code = code
end
end
它工作正常,如果我把它寫在文件中。
我想班分成兩個文件shelf.rb
和shelf/book.rb
,但是當我寫shelf.rb
require_relative 'shelf/book'
則因爲class Shelf
還沒有定義它失敗。
我該如何組織文件和目錄? 或者我用完全錯誤的方式使用嵌套類?
「如果您有一個名爲Shelf :: Book的類,那麼文件名book.rb應該在貨架目錄**內**「你確定嗎?從他們在rubygem網站上的一個例子中,您鏈接到'require'rdoc/data''主類或模塊RDoc :: Data,它似乎並不是這種情況 – 2014-11-04 07:39:03
@AurélienBottazini:當然這不是一個約束,它更多的被認爲是使用該慣例的良好做法。 – Surya 2014-11-04 07:40:26
@AurélienBottazini:另外,請閱讀OP的問題:*我應該如何組織文件和目錄?還是我用完全錯誤的方式使用嵌套類?*。問題清楚地問到關於組織文件和目錄的問題,我沒有理由不在回答中提及這一點。 – Surya 2014-11-04 07:49:14