當使用Rails助手腳本創建應用程式時,它會爲應用程式創建整個目錄結構。Rails知道在這個結構中哪裡可以找到它需要的東西,所以您不必提供任何輸入。
下面是在創建應用程式時由helper腳本創建的目錄樹的頂層視圖。除了版本之間的細微變化之外,每個Rails項目都將具有相同的結構,具有相同的命名約定。這種一致性爲您提供了巨大的優勢;您可以在Rails項目之間快速移動,而無需重新學習項目的組織結構。
爲了理解這個目錄結構,讓我們使用在安裝一章中創建的demo應用程式。它可以使用一個簡單的helper命令創建。
現在,進入demo應用程式根目錄,如下所示−
tp> cd demo demo> dir
您將在Windows中找到一個目錄結構,如下所示−
現在讓我們解釋一下每個目錄的用途
app−它組織您的應用程式組件。它有包含視圖(視圖和幫助程序)、控制器(控制器)和後端業務邏輯(模型)的子目錄。
app/controllers子目錄是Rails查找控制器類的地方。控制器處理來自用戶的web請求。
app/helpers−helpers子目錄保存用於幫助模型、視圖和控制器類的任何helper類。這有助於保持模型、視圖和控制器代碼的小、集中和整潔。
app/model s−models子目錄保存建模的類,並包裝存儲在應用程式資料庫中的數據。在大多數框架中,應用程式的這一部分會變得相當混亂、乏味、冗長和容易出錯。Rails讓它變得非常簡單!
app/view−view s子目錄保存顯示模板,用應用程式中的數據填充,轉換爲HTML,然後返回用戶瀏覽器。
app/view/layouts−保存要與視圖一起使用的布局的模板文件。這爲包裝視圖的常見頁眉/頁腳方法建模。在視圖中,使用「布局:默認」定義布局,並創建名爲default.html.erb的文件。在default.html.erb中,調用<%yield%>以使用此布局呈現視圖。
components−此目錄保存組件、捆綁模型、視圖和控制器的小型自包含應用程式。
config−此目錄包含應用程式需要的少量配置代碼,包括資料庫配置(在database.yml中)、Rails環境結構(environment.rb)和傳入web請求的路由(routes.rb)。您還可以使用environments目錄中的文件爲測試、開發和部署定製三個Rails環境的行爲。
db−通常,Rails應用程式將具有訪問關係資料庫表的模型對象。您可以使用創建的腳本管理關係資料庫並將其放置在此目錄中。
doc−Ruby有一個稱爲RubyDoc的框架,它可以自動爲您創建的代碼生成文檔。您可以幫助RubyDoc在代碼中添加注釋。這個目錄保存所有RubyDoc生成的Rails和應用程式文檔。
lib−您將把庫放在這裡,除非它們明確屬於其他地方(如供應商庫)。
這裡是日誌−錯誤日誌。Rails創建腳本來幫助您管理各種錯誤日誌。您將找到伺服器(server.log)和每個Rails環境(development.log、test.log和production.log)的單獨日誌。
public−與web伺服器的public目錄類似,此目錄包含不更改的web文件,例如JavaScript文件(public/javascripts)、圖形(public/images)、樣式表(public/stylesheets)和HTML文件(public)。
script−此目錄保存用於啓動和管理將用於Rails的各種工具的腳本。例如,有生成代碼(generate)和啓動web伺服器(server)的腳本。
test−您編寫的測試和Rails爲您創建的測試都在這裡。您將看到mock(mock)、unit tests(unit)、fixture(fixture)和functional tests(functional)的子目錄。
tmp−Rails使用此目錄保存臨時文件以進行中間處理。
供應商−由第三方供應商提供的庫(如基本Rails發行版以外的安全庫或資料庫實用程序)轉到此處。
除了這些目錄之外,demo目錄中還有兩個文件可用。
自述文件−此文件包含有關Rail應用程式的基本詳細信息以及上述目錄結構的說明。
Rakefile−此文件類似於Unix Makefile,它有助於構建、打包和測試Rails代碼。這將由隨Ruby安裝一起提供的rake實用程序使用。