之前的三十篇都是根據書本上的內容寫的,很少有自己的理解,從這篇開始,來了解一些Rails的內部機理,所以理解的東西比較多,代碼就少了,這次我們來看看Rails的目錄結構。
關於Rails的目錄結構,通過前面的練習,我們應該有一些了解了,我們的工作目錄主要是app和test兩個。其他目錄還了解不多,下面是一個Rails項目通常的目錄結構,我們還用前面的depot項目來作例子,目前的depot項目的結構:
├─app │ ├─controllers │ ├─helpers │ ├─models │ └─views │ ├─admin │ ├─layouts │ ├─login │ ├─search │ └─store ├─components ├─config │ └─environments ├─coverage ├─db │ └─migrate ├─doc │ └─app │ ├─classes │ └─files │ ├─app │ │ ├─controllers │ │ ├─helpers │ │ └─models │ └─doc ├─lib │ └─tasks ├─log ├─nbproject │ └─private ├─public │ ├─images │ ├─javascripts │ └─stylesheets ├─script │ ├─performance │ └─process ├─test │ ├─fixtures │ │ └─performance │ ├─functional │ ├─integration │ ├─mocks │ │ ├─development │ │ └─test │ ├─performance │ └─unit │ └─performance ├─tmp │ ├─cache │ ├─pids │ ├─sessions │ └─sockets └─vendor └─plugins
下面來解釋這些目錄的含義
app:Model,View,Controller都在這個目錄下,對應的有子目錄,我們大部分的工作都在這裡進行。
Components:可復用的組件都放在這裡。
Config:數據庫鏈接等的配置信息。
Coverage:這個不是Rails自己的目錄,是我們在前面測試時安裝的測試覆蓋率工具的目錄。
Db:存放DB結構(Schema)的信息。
Doc:存放文檔,我們前面生成過一次depot項目的文檔,都在這裡面。
Lib:存放共享的代碼。
Log:我們的項目的日志信息,裡面有development.log,production.log,server.log,test.log,我們在開發時的信息都寫在development.log裡,而測試時的log都寫在test.log裡。
Nbproject:這個不是Rails的目錄,是我們前面用NetBeans創建depot項目的時候生成的。
Public:可以從Web訪問的目錄,如果我們在浏覽器的地址欄裡直接輸入:http://localhost:3003/那麼看到的就是這裡的index.html頁面。另外,我們前面也把一些css文件放在了這裡的stylesheet目錄裡。
Script:Rails用到的腳本,有一些我們可能已經用過了,比如:generate,process,performance。
Test:Model測試,功能測試,測試用的數據等等,我們前面在這個目錄下已經寫了很多代碼了。
Server:運行WEBrick服務器,我們前面在depot項目裡已經使用了。
Vendor:存放第三方的代碼。
下面再主要說說Script目錄下的腳本,主要的腳本有:
l Benchmarker:對比多個方法的性能。
l Breakpointer:斷點,能夠讓你和Rails應用程序交互。
l Console:讓你能夠使用irb命令和rails應用程序交互。
l Destroy:移除generate生成的文件。
l Generate:代碼生成器,能夠生成Controller,Mailer,Model,Web服務等。你還可以從Rails的網站上下載一些擴展的生成器模塊。
l Profiler:對你的程序進行性能測試,使用方面前面的隨筆也已經介紹過了。
Runner:可以使我們代碼中的方法脫離Web的上下文環境來運行。