我把文件名g.rb在側Rails.root/lib
文件夾 文件內容是這樣的:在Rails 3中添加的lib到「config.autoload_paths」不自動載入我的模塊
module Google
end
然後,添加
config.autoload_paths += %W(#{config.root}/lib #{Rails.root}/app/delayed_jobs)
我Rails.root/config/application.rb
然而,當我嘗試從rails console
調用谷歌,則拋出異常。只有當我執行require 'google'
時,例外情況纔會消失。 爲什麼?我的文件不應該自動加載,不應該在沒有任何額外require
聲明的情況下訪問模塊?
所以這是一個錯誤或公約? – Blankman 2010-11-22 17:02:08
我相信這是慣例。 Rails使用不變的名稱,並使路徑離開它們。 ::變成/爲此目的。所以Google :: Docs變成了google/docs.rb。你可以辯論這個的用處,但這是我對當前功能的理解。 – 2011-01-26 22:17:39
這不是一個慣例,它是Ruby解釋器尋找東西的方式,據我所知 – Ghoti 2011-05-09 16:42:58