[關閉] |
维基百科,自由的百科全书
此條目或章節中包含過多未翻譯的專業術語,可能需要翻譯或進一步解釋。 請在討論頁中發表對於本議題的看法,並幫助對本條目中的術語進行翻譯或解釋。 |
開發者 | Rails Core Team |
---|---|
穩定版本 | 3.0.5/ 2011年2月27日 |
作業系統 | 跨平台 |
語言 | Ruby |
發展狀態 | Active |
類型 | Web應用框架 |
許可協議 | MIT許可證 |
網站 | rubyonrails.org |
目錄[隐藏] |
[编辑]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的HTML/XML/JavaScript模板,
[编辑]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來提供SOAP和XML-RPC支持。需要注意的是,Rails趨向使用更加簡單明瞭的REST方式web服務而不再提倡SOAP格式的web服務。ActionWebServices在未來的版本裡面會逐步淡出。
[编辑]網路資源:ActionResource
用REST對Web服務提供了優秀的支持。這種風格的Web服務使用指定的資源。
[编辑]Rails中的AJAX
AJAX(非同步JavaScript與XML)是一種非同步傳輸介面,可以藉由瀏覽器使用JavaScript和XML來處理傳輸請求,而將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中,常被用來作為應用伺服器。而對於生產應用,常推薦使用帶FastCGI的Apache或者Lighttpd,但任何支持CGI或者FastCGI的網頁伺服器都可以使用。在Apache上,mod_ruby也可以考慮用來提高性能。
[编辑]資料庫支持
使用Rails的架構開發網路應用一般都使用資料庫,所以推薦使用一個關聯式資料庫系統來進行數據存儲,若不能運行一個關聯式資料庫伺服器,Rails也支持SQLite庫。很多關聯式資料庫系統都支持,包括MySQL、PostgreSQL、SQLite、IBM DB2、Oracle和SQL Server。
[编辑]系統要求
[编辑]集成開發環境
開發用的IDE有:Eclipse , IntelliJ, Aptana
[编辑]類似的技術
[编辑]參考文獻
[编辑]外部連結
[编辑]官方網站
- (英文)Ruby On Rails官方網站
- (繁體中文)Ruby on Rails台灣官方網站
沒有留言:
張貼留言