下面是一個Rails項目通常的目錄結構
├─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目錄下的腳本,主要的腳本有:
Benchmarker:對比多個方法的性能。
Breakpointer:斷點,能夠讓你和Rails應用程序交互。
Console:讓你能夠使用irb命令和rails應用程序交互。
Destroy:移除generate生成的文件。
Generate:代碼生成器,能夠生成Controller,Mailer,Model,Web服務等。你還可以從Rails的網站上下載一些擴展的生成器模塊。
Profiler:對你的程序進行性能測試,使用方面前面的隨筆也已經介紹過了。
Runner:可以使我們代碼中的方法脫離Web的上下文環境來運行。