深入探討Ruby on Rails目錄結(jié)構(gòu)概念
對(duì)于Ruby on Rails的使用,相信大部分編程人員都不會(huì)陌生的。但是又有多少人了解其內(nèi)部結(jié)構(gòu)及其原理呢?下面我們就來(lái)看看Ruby on Rails目錄結(jié)構(gòu)。#t#
關(guān)于Ruby on Rails目錄結(jié)構(gòu),通過前面的練習(xí),我們應(yīng)該有一些了解了,我們的工作目錄主要是app和test兩個(gè)。其他目錄還了解不多,下面是一個(gè)Rails項(xiàng)目通常的目錄結(jié)構(gòu),我們還用前面的depot項(xiàng)目來(lái)作例子,目前的depot項(xiàng)目的結(jié)構(gòu):
├─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
下面來(lái)解釋這些Ruby on Rails目錄結(jié)構(gòu)的含義
app:Model,View,Controller都在這個(gè)目錄下,對(duì)應(yīng)的有子目錄,我們大部分的工作都在這里進(jìn)行。
Components:可復(fù)用的組件都放在這里。
Config:數(shù)據(jù)庫(kù)鏈接等的配置信息。
Coverage:這個(gè)不是Rails自己的目錄,是我們?cè)谇懊鏈y(cè)試時(shí)安裝的測(cè)試覆蓋率工具的目錄。
Db:存放DB結(jié)構(gòu)(Schema)的信息。
Doc:存放文檔,我們前面生成過一次depot項(xiàng)目的文檔,都在這里面。
Lib:存放共享的代碼。
Log:我們的項(xiàng)目的日志信息,里面有development.log,production.log,server.log,test.log,我們?cè)陂_發(fā)時(shí)的信息都寫在development.log里,而測(cè)試時(shí)的log都寫在test.log里。
Nbproject:這個(gè)不是Rails的目錄,是我們前面用NetBeans創(chuàng)建depot項(xiàng)目的時(shí)候生成的。
Public:可以從Web訪問的目錄,如果我們?cè)跒g覽器的地址欄里直接輸入:http://localhost:3003/那么看到的就是這里的index.html頁(yè)面。另外,我們前面也把一些css文件放在了這里的stylesheet目錄里。
Script:Rails用到的腳本,有一些我們可能已經(jīng)用過了,比如:generate,process,performance。
Test:Model測(cè)試,功能測(cè)試,測(cè)試用的數(shù)據(jù)等等,我們前面在這個(gè)目錄下已經(jīng)寫了很多代碼了。
Server:運(yùn)行WEBrick服務(wù)器,我們前面在depot項(xiàng)目里已經(jīng)使用了。
Vendor:存放第三方的代碼。
下面再主要說(shuō)說(shuō)Script這個(gè)Ruby on Rails目錄結(jié)構(gòu)下的腳本,主要的腳本有:
l Benchmarker:對(duì)比多個(gè)方法的性能。
l Breakpointer:斷點(diǎn),能夠讓你和Rails應(yīng)用程序交互。
l Console:讓你能夠使用irb命令和rails應(yīng)用程序交互。
l Destroy:移除generate生成的文件。
l Generate:代碼生成器,能夠生成Controller,Mailer,Model,Web服務(wù)等。你還可以從Rails的網(wǎng)站上下載一些擴(kuò)展的生成器模塊。
l Profiler:對(duì)你的程序進(jìn)行性能測(cè)試,使用方面前面的隨筆也已經(jīng)介紹過了。
Runner:可以使我們代碼中的方法脫離Web的上下文環(huán)境來(lái)運(yùn)行。