fbpx
维基百科

Ruby on Rails

Ruby on Rails(官方简称为Rails,亦被简称为RoR),是一个使用Ruby语言写的开源Web應用框架,它是严格按照MVC结构开发,努力使自身保持简单,使实际应用开发时的代码更少,使用最少的配置。

Ruby on Rails
開發者Rails核心团队
首次发布2005年12月13日,​17年前​(2005-12-13[1]
目前版本
  • 7.0.4.1 (2023年1月17日)[2]
源代码库
  • github.com/rails/rails
操作系统跨平台
语言Ruby
类型Web应用框架
许可协议MIT许可证
网站rubyonrails.org 

Rails的设计原则包括「不做重複的事」(Don't Repeat Yourself)和「慣例優於設定」(Convention Over Configuration)。

Ruby on Rails介紹

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

应用

Ruby on Rails的数千个程序已经在线上得到应用。 现在使用Ruby on Rails的网站有:[3]

  • Basecamp
  • Twitter
  • GitHub
  • Groupon
  • Shopify
  • Yellow Pages
  • GitLab
  • Coinbase
  • Crypto.com

歷史

於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表的类组成的。

在Rails中,模型类是通过Active Record模式进行处理的。一般来说,程序员要做的是继承ActiveRecord类,同时程序会自动计算出要使用哪个RDBMS表,这个表有哪些列。表与表之间的关系通过简单的命令来指明。

视图

View负责根据Model中的数据显示用户界面。作为web应用,Rails裡的View通常是生成整个或者部分网页。当然可以是XML或者甚至是JavaScript代码。表现为使用内嵌Ruby的HTMLXMLJavaScript模板。

控制器

控制器将用户界面和数据模型关联起来,并充当协调运作的角色。它接收各种用户操作,更新数据模型,并用合适的view展示结果给用户。像他的名字一样,可以说应用的主要控制中心就是各个控制器。

Rails的组成模块

模型: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在未来的版本裡面会逐步淡出。

网络资源:ActiveResource

用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。Rails還支持關聯式資料庫系統,包括MySQLPostgreSQLIBM DB2OracleSQL Server

系统要求

集成开发环境

开发用的IDE有:EclipseMyEclipseNetBeans,RubyMine,Aptana,Sublime TextVisual Studio Code

类似的框架

PHP 語言

Python語言

Perl語言

Elixir語言

  • Phoenix Framework

Node.js環境

  • Sails.js

参考文献

  1. ^ David. . Ruby on Rails. [2017-03-01]. (原始内容存档于2015-12-17). 
  2. ^ 2.0 2.1 Release 7.0.4.1. 2023年1月17日 [2023年1月23日]. 
  3. ^ . [2020-09-26]. (原始内容存档于2020-09-22). 

外部链接

官方網站

  • (英文)Ruby On Rails官方網站(页面存档备份,存于互联网档案馆
  • (繁體中文)Ruby on Rails台灣官方網站(页面存档备份,存于互联网档案馆

其他

  • Ruby 中国社区(页面存档备份,存于互联网档案馆
  • Onlamp.com的Ajax on Rails(页面存档备份,存于互联网档案馆
  • Fast-track your Web apps with Ruby on Rails(页面存档备份,存于互联网档案馆)(David Mertz article at IBM developerWorks)
  • Ruby on Rails和J2EE:两者能否共存?(页面存档备份,存于互联网档案馆
  • Full Ruby on Rails Tutorial
  • Steve Yegge把Rails移植到JavaScript/Rhino(页面存档备份,存于互联网档案馆

ruby, rails, 此條目需要补充更多来源, 2022年5月31日, 请协助補充多方面可靠来源以改善这篇条目, 无法查证的内容可能會因為异议提出而移除, 致使用者, 请搜索一下条目的标题, 来源搜索, 网页, 新闻, 书籍, 学术, 图像, 以检查网络上是否存在该主题的更多可靠来源, 判定指引, 此條目中有过多未翻译的专业术语, 可能需要翻译或解释, 请在讨论页中发表对于本议题的看法, 并帮助翻译或解释本条目的术语, 官方简称为rails, 亦被简称为ror, 是一个使用ruby语言写的开源web應用框架, . 此條目需要补充更多来源 2022年5月31日 请协助補充多方面可靠来源以改善这篇条目 无法查证的内容可能會因為异议提出而移除 致使用者 请搜索一下条目的标题 来源搜索 Ruby on Rails 网页 新闻 书籍 学术 图像 以检查网络上是否存在该主题的更多可靠来源 判定指引 此條目中有过多未翻译的专业术语 可能需要翻译或解释 请在讨论页中发表对于本议题的看法 并帮助翻译或解释本条目的术语 Ruby on Rails 官方简称为Rails 亦被简称为RoR 是一个使用Ruby语言写的开源Web應用框架 它是严格按照MVC结构开发 努力使自身保持简单 使实际应用开发时的代码更少 使用最少的配置 Ruby on Rails開發者Rails核心团队首次发布2005年12月13日 17年前 2005 12 13 1 目前版本7 0 4 1 2023年1月17日 2 源代码库github wbr com wbr rails wbr rails操作系统跨平台语言Ruby类型Web应用框架许可协议MIT许可证网站rubyonrails wbr org Rails的设计原则包括 不做重複的事 Don t Repeat Yourself 和 慣例優於設定 Convention Over Configuration 目录 1 Ruby on Rails介紹 2 应用 3 歷史 4 Rails的運作模式 5 Rails的MVC架构 5 1 模型 5 2 视图 5 3 控制器 6 Rails的组成模块 6 1 模型 Active Record 6 2 控制器和视图 ActionPack 6 3 常用实用工具 ActiveSupport 6 4 处理邮件 ActionMailer 6 5 Web服务 ActionWebService 6 6 网络资源 ActiveResource 6 7 Rails中的AJAX 7 Rails和Web服务 8 Web服务器支持 9 數據庫支持 10 系统要求 11 集成开发环境 12 类似的框架 12 1 PHP 語言 12 2 Python語言 12 3 Perl語言 12 4 Elixir語言 12 5 Node js環境 13 参考文献 14 外部链接 14 1 官方網站 14 2 其他Ruby on Rails介紹 编辑Ruby on Rails是一種結合Ruby語言與Rails平台的一種網頁程式框架 Ruby語言以自然 簡潔 快速著稱 全面支援面向对象程序设计 而Rails則是Ruby廣泛應用方式之一 在Rails平台上設計出一套獨特的MVC開發架構 採取模型 Model 视图 View 控制器 Controller 分離的開發方式 不但減少了開發中的問題 更簡化了許多繁複的動作 应用 编辑Ruby on Rails的数千个程序已经在线上得到应用 现在使用Ruby on Rails的网站有 3 Basecamp Twitter GitHub Groupon Shopify Yellow Pages GitLab Coinbase Crypto com歷史 编辑於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表的类组成的 在Rails中 模型类是通过Active Record模式进行处理的 一般来说 程序员要做的是继承ActiveRecord类 同时程序会自动计算出要使用哪个RDBMS表 这个表有哪些列 表与表之间的关系通过简单的命令来指明 视图 编辑 View负责根据Model中的数据显示用户界面 作为web应用 Rails裡的View通常是生成整个或者部分网页 当然可以是XML或者甚至是JavaScript代码 表现为使用内嵌Ruby的HTML XML JavaScript模板 控制器 编辑 控制器将用户界面和数据模型关联起来 并充当协调运作的角色 它接收各种用户操作 更新数据模型 并用合适的view展示结果给用户 像他的名字一样 可以说应用的主要控制中心就是各个控制器 Rails的组成模块 编辑模型 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在未来的版本裡面会逐步淡出 网络资源 ActiveResource 编辑 用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 Rails還支持關聯式資料庫系統 包括MySQL PostgreSQL IBM DB2 Oracle和SQL Server 系统要求 编辑Ruby语言 Web服务器 如Apache lighttpd等 FastCGI 或者Mongrel为了提高效率 数据库和驱动程序集成开发环境 编辑开发用的IDE有 Eclipse MyEclipse NetBeans RubyMine Aptana Sublime Text Visual Studio Code类似的框架 编辑PHP 語言 编辑 CakePHP Laravel Yii CodeIgniterPython語言 编辑 Django TurboGearsPerl語言 编辑 CatalystElixir語言 编辑 Phoenix FrameworkNode js環境 编辑 Sails js参考文献 编辑 David Rails 1 0 Party like it s one oh oh Ruby on Rails 2017 03 01 原始内容存档于2015 12 17 2 0 2 1 Release 7 0 4 1 2023年1月17日 2023年1月23日 存档副本 2020 09 26 原始内容存档于2020 09 22 外部链接 编辑官方網站 编辑 維基教科書中的相關電子教程 Ruby on Rails 英文 Ruby On Rails官方網站 页面存档备份 存于互联网档案馆 繁體中文 Ruby on Rails台灣官方網站 页面存档备份 存于互联网档案馆 其他 编辑 Ruby 中国社区 页面存档备份 存于互联网档案馆 Onlamp com的Ajax on Rails 页面存档备份 存于互联网档案馆 Fast track your Web apps with Ruby on Rails 页面存档备份 存于互联网档案馆 David Mertz article at IBM developerWorks Ruby on Rails和J2EE 两者能否共存 页面存档备份 存于互联网档案馆 Full Ruby on Rails Tutorial Steve Yegge把Rails移植到JavaScript Rhino 页面存档备份 存于互联网档案馆 Ruby编写的JavaEye中的ruby论坛 取自 https zh wikipedia org w index php title Ruby on Rails amp oldid 73394554, 维基百科,wiki,书籍,书籍,图书馆,

文章

,阅读,下载,免费,免费下载,mp3,视频,mp4,3gp, jpg,jpeg,gif,png,图片,音乐,歌曲,电影,书籍,游戏,游戏。