
- 學習 Ruby on Rails
- Rails 2.1 主頁
- Rails 2.1 簡介
- Rails 2.1 安裝
- Rails 2.1 框架
- Rails 2.1 目錄結構
- Rails 2.1 示例
- Rails 2.1 資料庫設定
- Rails 2.1 Active Records
- Rails 2.1 遷移
- Rails 2.1 控制器
- Rails 2.1 檢視
- Rails 2.1 佈局
- Rails 2.1 腳手架
- Rails 2.1 和 AJAX
- Rails 2.1 上傳檔案
- Rails 2.1 傳送郵件
- 高階 Ruby on Rails 2.1
- Rails 2.1 RMagick 指南
- Rails 2.1 基本 HTTP 認證
- Rails 2.1 錯誤處理
- Rails 2.1 路由系統
- Rails 2.1 單元測試
- 高階 Ruby on Rails 2.1
- Rails 2.1 提示與技巧
- 快速參考指南
- 快速參考指南
- Ruby on Rails 2.1 有用資源
- Ruby on Rails 2.1 - 資源
- Ruby on Rails 2.1 - 討論
Ruby on Rails 2.1 - 框架
框架是一個程式、一組程式和/或程式碼庫,可以為您編寫大部分應用程式。當您使用框架時,您的工作是編寫應用程式的那些使其執行您想要執行的特定操作的部分。
當您著手編寫 Rails 應用程式時,撇開配置和其他家務瑣事,您必須執行三個主要任務:
描述和建模應用程式的領域 - 領域是應用程式的宇宙。該領域可以是音樂商店、大學、約會服務、地址簿或硬體庫存。因此,您必須弄清楚其中包含的內容、此宇宙中存在哪些實體以及其中的專案如何相互關聯。這相當於建模資料庫結構以保留實體及其關係。
指定在此領域中可以發生什麼 - 領域模型是靜態的。您必須使其動態化。可以將地址新增到地址簿中。可以從音樂商店購買樂譜。使用者可以登入約會服務。學生可以在大學註冊課程。您需要識別領域元素可以參與的所有可能場景或操作。
選擇和設計領域公開可用的檢視 - 在這一點上,您可以開始以 Web 瀏覽器的方式思考。一旦您確定您的領域有學生,並且他們可以註冊課程,您就可以設想一個歡迎頁面、一個註冊頁面或一個確認頁面等。每個頁面或檢視都向使用者顯示事物在特定時間點的狀態。
基於以上三個任務,Ruby on Rails 處理 Model/View/Controller (MVC) 框架。
Ruby on Rails MVC 框架
Model View Controller 原則將應用程式的工作劃分為三個獨立但緊密協作的子系統。
模型 (ActiveRecord)
維護物件和資料庫之間的關係,並處理驗證、關聯、事務等。
此子系統在ActiveRecord庫中實現,該庫提供了一個介面和繫結,在關係資料庫中的表和操作資料庫記錄的 Ruby 程式程式碼之間建立了連線。
Ruby 方法名稱會根據資料庫表的欄位名稱自動生成。
Active Record 還提供基於屬性的動態查詢器和許多其他輔助方法,使資料庫互動變得簡單高效。
檢視 (ActionView)
它是以特定格式呈現資料,由控制器決定呈現資料觸發。它們是基於指令碼的模板系統,例如 JSP、ASP、PHP,並且非常易於與 AJAX 技術整合。
此子系統在ActionView庫中實現,這是一個基於嵌入式 Ruby (ERb) 的系統,用於定義資料呈現的呈現模板。每個 Web 連線到 Rails 應用程式都會導致顯示一個檢視。
ActionView 有助於將呈現的細節與應用程式的核心業務邏輯分開。
控制器 (ActionController)
應用程式中用於引導流量的功能,一方面查詢模型以獲取特定資料,另一方面將這些資料(搜尋、排序、處理)組織成適合給定檢視需求的形式。
此子系統在 ActionController 中實現,它是一個數據代理,位於 ActiveRecord(資料庫介面)和 ActionView(呈現引擎)之間。
MVC 框架的表示
此處給出了 Ruby on Rails 框架的圖形表示:

MVC 框架的目錄表示
假設在 Linux 上進行標準的預設安裝,您可以像這樣找到它們:
tp> cd /usr/local/lib/ruby/gems/1.8/gems tp> ls
您將看到包含(但不限於)以下子目錄:
- actionpack-x.y.z
- activerecord-x.y.z
- rails-x.y.z
在 Windows 安裝上,您可以像這樣找到它們:
C:\>cd ruby\lib\ruby\gems\1.8\gems C:\ruby\lib\ruby\gems\1.8\gems\>dir
您將看到包含(但不限於)以下子目錄:
- actionpack-x.y.z
- activerecord-x.y.z
- rails-x.y.z
ActionView 和 ActionController 捆綁在 ActionPack 下。
ActiveRecord 提供了一系列用於操作 SQL 資料庫中資料的程式設計技術和快捷方式。ActionController 和 ActionView 提供了用於操作和顯示這些資料的功能。Rails 將它們全部繫結在一起。