Ruby on Rails


维基百科,自由的百科全书
Ruby on Rails
Ruby on Rails logo.jpg
開發者Rails Core Team
穩定版本3.0.5/
2011年2月27日
作業系統跨平台
語言Ruby
發展狀態Active
類型Web應用框架
許可協議MIT許可證
網站rubyonrails.org
Ruby on Rails,簡稱RoRRails,是一個使用Ruby語言寫的開源Web應用框架,它是嚴格按照MVC結構開發的。它努力使自身保持簡單,來使實際的應用開發時的代碼更少,使用最少的配置
Rails的設計原則包括「不做重複的事」(Don't Repeat Yourself)和「慣例優於設定」(Convention Over Configuration)

目錄

  [隐藏

[编辑]Ruby on Rails介紹

Ruby on Rails是一種結合Ruby語言與Rails平台的一種網頁程式語言,Ruby語言以自然、簡潔、快速著稱,全面支援物件導向程序設計,而Rails則是Ruby廣泛應用方式之一,在Rails平台上設計出一套獨特的MVC開發架構,採取模型(Model)、視圖(View)、控制器(Controller)分離的開發方式,不但減少了開發中的問題,更簡化了許多繁複的動作。

[编辑]歷史

於2004年7月,Rails的創始人大衛·海納梅爾·韓森37signals公司的項目管理工具Basecamp裡面分離出Ruby on Rails,並且以開源方式發佈。
Rails在發佈以後的短短的時間內就迅速獲得很多開發人員歡迎,大衛認為這歸功於Rails設計為opinionated software。Rails當中有很多規矩從一開始就按照David的意見制定好了,所以在Rails上開發應用程序時,開發人員可以專注於應用程序自身的設計,省卻那些花在瞭解及配置基礎框架上面的時間。這也正是Rails很重要的精神「約定優於配置」,開發人員遵照Rails本身的慣例便可以省卻配置組態檔的時間;此外,Rails雖然強調慣例的重要及便利性,但針對不同的需求,Rails也提供修改的空間讓開發人員可以進行自訂的組態。

[编辑]Rails的運作模式

Rails框架是以固定的命名習慣來自動判斷整個架構,預設下會將網址分析成http://domain-name/ControllerName/ActionName/Attribute/ 然後執行目標Controller中的Action,並取出指定的View(視圖)回傳給瀏覽器顯示。
面對資料庫則以Model(模組)的形式,藉由Active Record作為與資料庫之間的傳輸介面。

[编辑]Rails的MVC架構

Ruby on Rails的模型-視圖-控制器架構由以下各部分組成:

[编辑]模型

模型包含著應用的狀態,狀態可能是臨時的也可能是長久性保存在資料庫中的。需要注意的是模型不僅包含數據,而且包含數據代表的邏輯。在Rails中,模型通常是由一些代表關係資料庫中RDBMS表的類組成的。
在RoR中,模型類是通過Active Record模式進行處理的。一般來說,程式設計師要做的是繼承ActiveRecord類,同時程序會自動計算出要使用哪個RDBMS表,這個表有哪些列。表與表之間的關係通過簡單的命令來指明。

[编辑]控制器

控制器將用戶界面和數據模型關聯起來,並充當協調運作的角色。它接收各種用戶操作,更新數據模型,並用合適的view展示結果給用戶。象他的名字一樣,可以說應用的主要控制中心就是各個控制器。

[编辑]視圖

View負責根據Model中的數據顯示用戶界面。作為web應用,Rails裡的View通常是生成整個或者部分網頁。當然可以是XML或者甚至是JavaScript代碼。表現為使用內嵌Ruby的HTMLXMLJavaScript模板,

[编辑]Rails的組成模塊

察看系統裡面安裝的gem包,可以發現如下的Rails相關的Gems。
actionmailer (1.3.2)
    Service layer for easy email delivery and testing.
 
actionpack (1.13.2)
    Web-flow and rendering framework putting the VC in MVC.
 
actionwebservice (1.2.2)
    Web service support for Action Pack.
 
activerecord (1.15.2)
    Implements the ActiveRecord pattern for ORM.
 
activesupport (1.4.1)
    Support and utility classes used by the Rails framework.
 
rails (1.2.2)
    Web-application framework with template engine, control-flow layer,
    and ORM.

[编辑]模型:Active Record

ActiveRecord實現了Rails的對象關係映射

[编辑]控制器和視圖:ActionPack

ActionController是Rails中的控制器,提供各種方法供用戶操作使用。
ActionView是Rails中的視圖,負責展現用戶界面。

[编辑]常用實用工具:ActiveSupport

ActiveSupport包提供一些工具和支持代碼。

[编辑]處理郵件:ActionMailer

ActionMailer用來發送和接收email

[编辑]Web服務:ActionWebService

ActionWebService來提供SOAPXML-RPC支持。需要注意的是,Rails趨向使用更加簡單明瞭的REST方式web服務而不再提倡SOAP格式的web服務。ActionWebServices在未來的版本裡面會逐步淡出。

[编辑]網路資源:ActionResource

用REST對Web服務提供了優秀的支持。這種風格的Web服務使用指定的資源。

[编辑]Rails中的AJAX

AJAX(非同步JavaScript與XML)是一種非同步傳輸介面,可以藉由瀏覽器使用JavaScriptXML來處理傳輸請求,而將Web伺服器作為後台來處理,這樣無須載入額外的網頁。Rails內建有Prototype套件來實現這個技術。Ajax已經和Ruby on Rails結合在了一起成為了一個新的系統叫做「Ajax on Rails」。Rails提供一些助手工具來更方便地實現AJAX應用。 Rails提供了一些Helper,可以在伺服器一端用純Ruby語言生成給瀏覽器用的JavaScript代碼,從而讓Rails的開發者不需掌握JavaScript就可以簡單方便的開發出AJAX的應用。

[编辑]Rails和Web服務

稍早的版本的Rails中提供了ActionWebService作為開發XML-RPC和SOAP的web服務的基礎。但是最近的Rails 1.2更加傾向於是用REST方式的web服務,而ActionWebService在Rails 2.0中作為plugin而不再是rails核心的一部分。

[编辑]Web伺服器支持

對於開發和測試來說,一個很輕量的WEBrick網頁伺服器已經被包含在了Ruby中,常被用來作為應用伺服器。而對於生產應用,常推薦使用帶FastCGIApache或者Lighttpd,但任何支持CGI或者FastCGI的網頁伺服器都可以使用。在Apache上,mod_ruby也可以考慮用來提高性能。

[编辑]資料庫支持

使用Rails的架構開發網路應用一般都使用資料庫,所以推薦使用一個關聯式資料庫系統來進行數據存儲,若不能運行一個關聯式資料庫伺服器,Rails也支持SQLite庫。很多關聯式資料庫系統都支持,包括MySQLPostgreSQLSQLiteIBM DB2OracleSQL Server

[编辑]系統要求

[编辑]集成開發環境

開發用的IDE有:Eclipse , IntelliJ, Aptana

[编辑]類似的技術

[编辑]參考文獻

[编辑]外部連結

[编辑]官方網站

[编辑]其他


留言

這個網誌中的熱門文章

鋼鐵板材知識

10 Easy Ways to Start a Social Network

出口貨物退稅