Ruby on Rails 2.1 - 目錄結構



當您使用 Rails 的輔助指令碼建立應用程式時,它會建立應用程式的整個目錄結構。Rails 知道在哪裡可以找到其在此結構中需要的資源,因此您無需提供任何輸入。

以下是應用程式建立時輔助指令碼建立的目錄樹的頂層檢視。除了版本之間的微小更改外,每個 Rails 專案都將具有相同的結構和相同的命名約定。這種一致性為您帶來了巨大的優勢;您可以快速地在 Rails 專案之間切換,而無需重新學習專案的組織方式。

為了理解這個目錄結構,讓我們使用安裝章節中建立的demo應用程式。可以使用簡單的輔助命令建立它,如下所示:

C:\ruby\> rails -d mysql demo

現在,進入 demo 應用程式的根目錄,如下所示:

C:\ruby\> cd demo
C:\ruby\demo> dir

您將找到如下所示的目錄結構:

demo/
..../app
......../controller
......../helpers
......../models
......../views
............../layouts
..../config
..../db
..../doc
..../lib
..../log
..../public
..../script
..../test
..../tmp
..../vendor
README
Rakefile

現在讓我們解釋每個目錄的目的。

  • app − 它組織您的應用程式元件。它包含用於存放檢視 (views 和 helpers)、控制器 (controllers) 和後端業務邏輯 (models) 的子目錄。

  • app/controllers − 控制器子目錄是 Rails 查詢控制器類的地方。控制器處理來自使用者的 Web 請求。

  • app/helpers − helpers 子目錄包含用於輔助模型、檢視和控制器類的任何輔助類。它有助於使模型、檢視和控制器程式碼保持簡潔、重點突出且井井有條。

  • app/models − models 子目錄包含模擬和包裝應用程式資料庫中儲存的資料的類。在大多數框架中,應用程式的這一部分可能會變得非常混亂、冗長、冗餘且容易出錯。Rails 使其變得非常簡單!

  • app/views − views 子目錄包含顯示模板,用於填充應用程式資料,轉換為 HTML 並返回到使用者的瀏覽器。

  • app/views/layouts − 包含與檢視一起使用的佈局的模板檔案。這模擬了常用的頁首/頁尾包裝檢視的方法。在您的檢視中,使用<tt>layout :default </tt>定義佈局,並建立一個名為 default.rhtml 的檔案。在 default.erb 中,呼叫<% yield %> 以使用此佈局呈現檢視。

  • config − 此目錄包含應用程式所需的少量配置程式碼,包括資料庫配置 (database.yml)、Rails 環境結構 (environment.rb) 和傳入 Web 請求的路由 (routes.rb)。您還可以使用 environments 目錄中的檔案調整測試、開發和部署這三個 Rails 環境的行為。

  • db − 通常,您的 Rails 應用程式將具有訪問關係資料庫表的模型物件。您可以使用您建立並放在此目錄中的指令碼來管理關係資料庫。

  • doc − 使用rake doc:app生成時,此目錄將儲存您的應用程式文件。

  • lib − 應用程式特定的庫放在這裡。基本上,任何不屬於控制器、模型或幫助程式的自定義程式碼。此目錄位於載入路徑中。

  • log − 錯誤日誌放在這裡。Rails 建立指令碼以幫助您管理各種錯誤日誌。您會找到伺服器 (server.log) 和每個 Rails 環境 (development.log、test.log 和 production.log) 的單獨日誌。

  • public − 與 Web 伺服器的公共目錄一樣,此目錄包含不會更改的 Web 檔案,例如 JavaScript 檔案 (public/javascripts)、圖形 (public/images)、樣式表 (public/stylesheets) 和 HTML 檔案 (public)。這應設定為 Web 伺服器的 DOCUMENT_ROOT。

  • script − 此目錄包含用於啟動和管理您將與 Rails 一起使用的各種工具的指令碼。例如,有用於生成程式碼 (generate) 和啟動 Web 伺服器 (server) 等的指令碼。

  • test − 您編寫的測試和 Rails 為您建立的測試都放在這裡。您將看到用於模擬 (mocks)、單元測試 (unit)、夾具 (fixtures) 和功能測試 (functional) 的子目錄。

  • tmp − Rails 使用此目錄來儲存用於中間處理的臨時檔案。

  • vendor − 此處存放由第三方供應商提供的庫(例如超出基本 Rails 發行版的安全庫或資料庫實用程式)。

除了這些目錄外,demo 目錄中還將有兩個檔案。

  • README − 此檔案包含有關 Rail 應用程式的基本詳細資訊以及上述目錄結構的說明。

  • Rakefile − 此檔案類似於 Unix Makefile,它有助於構建、打包和測試 Rails 程式碼。這將由 Ruby 安裝程式提供的rake實用程式使用。

廣告
© . All rights reserved.