Ruby on Rails 正在令整個 Web 開發領域受到震憾。讓我們首先了解底層的技術:
Ruby 是一門免費的、簡單的、直觀的、可擴展的、可移植的、解釋的腳本語言,用于快速而簡單的面向對象編程。類似于 Perl,它支持 處理文本文件和執行系統管理任務的很多特性。
Rails 是用 Ruby 編寫的一款完整的、開放源代碼的 Web 框架,目的是使用更簡單而且更少的代碼編寫實際使用的應用程序。
作為一個完整的框架,這意味著 Rails 中的所有的層都是為協同工作而構造的,所以您不必自己再重復,可以完全只使用一門單一的語言。 在 Rails 中,所有內容(從模板到控制流再到業務邏輯)都是用 Ruby 編寫的。Rails 支持基于配置文件和注釋的反射(reflection)和運行時擴展。
本文詳細介紹了 Rails 的組成部分,并介紹了它的工作原理。
Rails 介紹
關于 Rails,首先需要理解的是它的模型/視圖/控制器(model/view/controller,MVC)架構。雖然這種技術不是 Rails 所特有的 —— 甚至不是 Web 應用程序所特有的(相對于其他程序),但是 Rails 具有非常清晰而專一的 MVC 思維方式。如果您并不使用 MVC 方法,那么 Rails 的用處將大為降低(與遵循其模式的情況相比)。
模型
Rails 應用程序的模型部分主要是它所使用的底層數據庫。實際上,在很多情形中 Rails 應用程序正是以一種受管理的方式對關系型數據庫管理 系統(RDBMS)中的數據執行操作的一個途徑。
ActiveRecord 類是 Rails 的一個核心組成部分,它將關系型表映射為 Ruby 對象,使其成為控制器可以操作并能在視圖 中顯示的數據。Rails 應用程序特別傾向于使用廣為應用的 MySQL 數據庫,不過也有與很多其他 RDBMS 的綁定,比如 IBM? DB2?。
如果您愿意,您可以添加 Ruby 代碼來在應用程序模型中執行額外的驗證,加強數據關聯,或者觸發其他操作。應用程序的 app/models/ 目錄中的 Ruby 文件能夠調用 ActiveRecord 的多種驗證方法。不過,您也可以將模型代碼留作一個存根,而只是依賴保存數據 的 RDBMS 的約束。例如,我在這個示例中所開發的應用程序只包含這個骨架模型代碼(至少在開始時是):
清單 1. 骨架模型 app/models/contact.rb
class Contact < ActiveRecord::Baseend
控制器
控制器以其抽象形式執行應用程序的邏輯。也就是說,應用程序的 app/controllers/ 目錄中的 Ruby 腳本能把模型數據導入為變量,保存回去,或對其進行修改 和處理。不過,控制器不關心用戶如何適當地顯示或者輸入數據。在通常的 MVC 模型中,這可以讓用戶能夠以多種方式與同一控制器進行交互:本地 GUI, Web 界面,以及視力較弱的人使用的語音界面都可以與相同的控制器進行交互。
新聞熱點
疑難解答