框架是爲您編寫大部分應用程式的程序、程序集和/或代碼庫。當您使用框架時,您的工作是編寫應用程式的各個部分,使其完成您想要的特定任務。
當您打算編寫一個Rails應用程式時,除了配置和其他家務之外,您必須執行三個主要任務&負;
描述並建模應用程式的域−域是應用程式的整體。域名可以是音樂商店、大學、約會服務、地址簿或硬體清單。所以在這裡你必須弄清楚它是什麼,宇宙中存在著什麼實體,以及其中的元素是如何相互聯繫的。這相當於爲資料庫結構建模,以保留實體及其關係。
指定此域中可能發生的情況−域模型是靜態的;必須使其成爲動態的。地址可以添加到通訊簿中。樂譜可以從音樂商店購買。用戶可以登錄約會服務。學生可以在大學註冊上課。您需要確定域元素可以參與的所有可能的方案或操作。
選擇並設計域的公共可用視圖−此時,您可以開始使用Web瀏覽器進行思考。一旦您確定您的域中有學生,並且他們可以註冊課程,您就可以設想一個歡迎頁面、一個註冊頁面和一個確認頁面等。這些頁面或視圖中的每一個都向用戶展示了在某一點上的情況。
基於以上三個任務,Ruby on Rails處理了一個模型/視圖/控制器(Model/View/Controller,MVC)框架。
Ruby on Rails MVC Framework
控制器原理將應用程式的工作劃分爲三個獨立但緊密協作的子系統。
Model (ActiveRecord )
它維護對象和資料庫之間的關係,並處理驗證、關聯、事務等。
這個子系統是在ActiveRecord庫中實現的,ActiveRecord庫提供了一個接口和關係資料庫中的表與處理資料庫記錄的Ruby程序代碼之間的綁定。Ruby方法名是從資料庫表的欄位名自動生成的。
View ( ActionView )
它是特定格式的數據表示,由控制器決定顯示數據而觸發。它們是基於腳本的模板系統,如JSP、ASP、PHP,並且非常容易與AJAX技術集成。
該子系統是在ActionView庫中實現的,ActionView庫是一個基於嵌入式Ruby(ERb)的系統,用於定義數據表示的表示模板。每個到Rails應用程式的Web連接都會顯示一個視圖。
Controller ( ActionController )
應用程式中的一種功能,它一方面引導通信量,查詢模型中的特定數據,另一方面,將數據(搜索、排序、消息傳遞)組織成符合給定視圖需要的形式。
這個子系統在ActionController中實現,ActionController是位於ActiveRecord(資料庫接口)和ActionView(表示引擎)之間的數據代理。
Pictorial Representation of MVC Framework
下面給出了Ruby on Rails框架的一個圖形表示−
Directory Representation of MVC Framework
假設在Linux上安裝了一個標準的默認安裝,您會發現它們是這樣的−
tp> cd /usr/local/lib/ruby/gems/2.2.0/gems tp> ls
您將看到子目錄包括(但不限於)以下−
- actionpack-x.y.z
- activerecord-x.y.z
- rails-x.y.z
通過windows安裝,您可以找到這樣的文件;
tp>cd ruby\lib\ruby\gems\2.2.0\gems ruby\lib\ruby\gems\2.2.0\gems\>dir
您將看到子目錄包括(但不限於)以下−
ActionView和ActionController捆綁在ActionPack下。
ActiveRecord提供了一系列編程技術和快捷方式,用於處理SQL資料庫中的數據。ActionController和ActionView提供了操作和顯示數據的工具。鐵軌把它們綁在一起。