<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh">
	<id>https://arolstar52-zhtest.hf.space/index.php?action=history&amp;feed=atom&amp;title=Ruby_on_Rails</id>
	<title>Ruby on Rails - 版本历史</title>
	<link rel="self" type="application/atom+xml" href="https://arolstar52-zhtest.hf.space/index.php?action=history&amp;feed=atom&amp;title=Ruby_on_Rails"/>
	<link rel="alternate" type="text/html" href="https://arolstar52-zhtest.hf.space/index.php?title=Ruby_on_Rails&amp;action=history"/>
	<updated>2026-06-29T07:15:11Z</updated>
	<subtitle>在这个wiki上该页的修订历史</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://arolstar52-zhtest.hf.space/index.php?title=Ruby_on_Rails&amp;diff=65443&amp;oldid=prev</id>
		<title>~2025-43840-79：​/* 应用 */</title>
		<link rel="alternate" type="text/html" href="https://arolstar52-zhtest.hf.space/index.php?title=Ruby_on_Rails&amp;diff=65443&amp;oldid=prev"/>
		<updated>2025-12-30T09:08:30Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;应用&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Refimprove|time=2022-05-31T03:28:18+00:00}}&lt;br /&gt;
{{noteTA&lt;br /&gt;
|G1=IT&lt;br /&gt;
|G2=FL&lt;br /&gt;
|1=zh-cn:代码; zh-tw:程式碼;&lt;br /&gt;
}}&lt;br /&gt;
{{Untranslated-jargon}}&lt;br /&gt;
{{Infobox Software&lt;br /&gt;
| name = Ruby on Rails&lt;br /&gt;
| logo = Ruby On Rails Logo.svg&lt;br /&gt;
| logo_size = 150px&lt;br /&gt;
| screenshot =&lt;br /&gt;
| caption =&lt;br /&gt;
| author =&lt;br /&gt;
| developer = [https://archive.today/20121205052757/http://www.rubyonrails.org/core Rails核心团队]&lt;br /&gt;
| released = {{Start date and age|df=yes|2005|12|13}}&amp;lt;ref name=initial10announce&amp;gt;{{cite web|url=http://weblog.rubyonrails.org/2005/12/13/rails-1-0-party-like-its-one-oh-oh/|website=Ruby on Rails|author=David|accessdate=2017-03-01|title=Rails 1.0: Party like it&amp;#039;s one oh oh!|archive-date=2015-12-17|archive-url=https://web.archive.org/web/20151217174626/http://weblog.rubyonrails.org/2005/12/13/rails-1-0-party-like-its-one-oh-oh/|dead-url=yes}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
| latest release version = {{LSR/wikidata}}&lt;br /&gt;
| latest preview version = &lt;br /&gt;
| latest preview date =&lt;br /&gt;
| operating system = [[跨平台]]&lt;br /&gt;
| platform =&lt;br /&gt;
| status   = 活躍&lt;br /&gt;
| language =  [[Ruby]]&lt;br /&gt;
| genre = [[Web应用框架]]&lt;br /&gt;
| license = [[MIT许可证]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;{{lang|en|Ruby on Rails}}&amp;#039;&amp;#039;&amp;#039;（官方简称为Rails，亦被简称为RoR），是一个使用[[Ruby]]语言写的[[开源]][[Web應用框架]]，它是严格按照[[MVC]]结构开发，努力使自身保持简单，使实际应用开发时的代码更少，使用最少的配置。&lt;br /&gt;
&lt;br /&gt;
Rails的设计原则包括「[[一次且仅一次|不做重複的事]]」（Don&amp;#039;t Repeat Yourself）和「[[约定优于配置|慣例優於設定]]」（Convention Over Configuration）。&lt;br /&gt;
&lt;br /&gt;
== Ruby on Rails介紹 ==&lt;br /&gt;
Ruby on Rails是一種結合Ruby語言與Rails平台的一種網頁程式框架，Ruby語言以自然、簡潔、快速著稱，全面支援[[面向对象程序设计]]，而Rails則是Ruby廣泛應用方式之一，在Rails平台上設計出一套獨特的[[MVC]]開發架構，採取模型（Model）、视图（View）、控制器（Controller）分離的開發方式，不但減少了開發中的問題，更簡化了許多繁複的動作。&lt;br /&gt;
&lt;br /&gt;
== 应用 ==&lt;br /&gt;
Ruby on Rails的数千个程序已经在线上得到应用。&lt;br /&gt;
现在使用Ruby on Rails的网站有：&amp;lt;ref&amp;gt;{{Cite web |url=http://rubyonrails.org/ |title=存档副本 |accessdate=2020-09-26 |archive-date=2020-09-22 |archive-url=https://web.archive.org/web/20200922065643/https://rubyonrails.org/ |dead-url=yes }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
* Basecamp&lt;br /&gt;
* X&lt;br /&gt;
* GitHub&lt;br /&gt;
* Groupon&lt;br /&gt;
* Shopify&lt;br /&gt;
* Yellow Pages&lt;br /&gt;
* GitLab&lt;br /&gt;
* Coinbase&lt;br /&gt;
* Crypto.com&lt;br /&gt;
&lt;br /&gt;
== 歷史 ==&lt;br /&gt;
於2004年7月，Rails的創始人[[大衛·漢森]]從[[37signals]]公司的項目管理工具[[Basecamp]]分離出Ruby on Rails，並且以[[開源]]方式發佈。&lt;br /&gt;
&lt;br /&gt;
Rails在發佈以後的短短的時間內就迅速獲得很多開發人員歡迎，大衛認為這歸功於Rails設計為opinionated software。Rails當中有很多規矩從一開始就按照David的意見制定好了，所以在Rails上開發應用程序時，開發人員可以專注於應用程序自身的設計，省卻那些花在瞭解及配置基礎框架上面的時間。這也正是Rails很重要的精神「[[約定優於配置]]」，開發人員遵照Rails本身的慣例便可以省卻配置組態檔的時間；此外，Rails雖然強調慣例的重要及便利性，但針對不同的需求，Rails也提供修改的空間讓開發人員可以進行自訂的組態。&lt;br /&gt;
&lt;br /&gt;
== Rails的運作模式 ==&lt;br /&gt;
Rails框架是以固定的命名習慣來自動判斷整個架構，預設下會將網址分析成&amp;lt;nowiki&amp;gt;http://domain-name/ControllerName/ActionName/Attribute/ &amp;lt;/nowiki&amp;gt;然後執行目標Controller中的Action，並取出指定的View（視圖）回傳給瀏覽器顯示。&lt;br /&gt;
&lt;br /&gt;
面對資料庫則以Model（模組）的形式，藉由Active Record作為與資料庫之間的傳輸介面。&lt;br /&gt;
&lt;br /&gt;
== Rails的MVC架构 ==&lt;br /&gt;
Ruby on Rails的[[MVC|模型-视图-控制器]]架构由以下各部分组成：&lt;br /&gt;
&lt;br /&gt;
=== 模型 ===&lt;br /&gt;
模型包含着应用的状态，状态可能是临时的也可能是长久性保存在数据库中的。需要注意的是模型不仅包含数据，而且包含数据代表的逻辑。在Rails中，&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;模型&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;通常是由一些代表关系数据库中RDBMS表的类组成的。&lt;br /&gt;
&lt;br /&gt;
在Rails中，模型类是通过[[Active Record]]模式进行处理的。一般来说，程序员要做的是继承&amp;lt;code&amp;gt;ActiveRecord&amp;lt;/code&amp;gt;类，同时程序会自动计算出要使用哪个RDBMS表，这个表有哪些列。表与表之间的关系通过简单的命令来指明。&lt;br /&gt;
&lt;br /&gt;
=== 视图 ===&lt;br /&gt;
View负责根据Model中的数据显示用户界面。作为web应用，Rails裡的View通常是生成整个或者部分网页。当然可以是XML或者甚至是[[JavaScript]]代码。表现为使用内嵌Ruby的[[HTML]]／[[XML]]／[[JavaScript]]模板。&lt;br /&gt;
&lt;br /&gt;
=== 控制器 ===&lt;br /&gt;
控制器将用户界面和数据模型关联起来，并充当协调运作的角色。它接收各种用户操作，更新数据模型，并用合适的view展示结果给用户。像他的名字一样，可以说应用的主要控制中心就是各个控制器。&lt;br /&gt;
&lt;br /&gt;
== Rails的组成模块 ==&lt;br /&gt;
&lt;br /&gt;
=== 模型：Active Record ===&lt;br /&gt;
ActiveRecord实现了Rails的[[对象关系映射]]。&lt;br /&gt;
&lt;br /&gt;
=== 控制器和视图：ActionPack ===&lt;br /&gt;
ActionController是Rails中的控制器，提供各种方法供用户操作使用。&lt;br /&gt;
&lt;br /&gt;
ActionView是Rails中的视图，负责展现用户界面。&lt;br /&gt;
&lt;br /&gt;
=== 常用实用工具：ActiveSupport ===&lt;br /&gt;
ActiveSupport包提供一些工具和支持代码。&lt;br /&gt;
&lt;br /&gt;
=== 处理邮件：ActionMailer ===&lt;br /&gt;
[[ActionMailer]]用来发送和接收[[email]]。&lt;br /&gt;
&lt;br /&gt;
=== Web服务：ActionWebService ===&lt;br /&gt;
[[ActionWebService]]来提供[[SOAP]]和[[XML-RPC]]支持。需要注意的是，Rails趋向使用更加简单明瞭的REST方式web服务而不再提倡SOAP格式的web服务。ActionWebServices在未来的版本裡面会逐步淡出。&lt;br /&gt;
&lt;br /&gt;
=== 网络资源：ActiveResource ===&lt;br /&gt;
用REST对Web服务提供了优秀的支持。这种风格的Web服务使用指定的资源。&lt;br /&gt;
&lt;br /&gt;
=== Rails中的AJAX ===&lt;br /&gt;
[[AJAX]]（非同步JavaScript與XML）是一種非同步傳輸介面，可以藉由[[浏览器]]使用[[JavaScript]]和[[XML]]或其他数据格式来處理傳輸請求，而将[[Web服务器]]作为[[后台]]来处理，这样无须载入额外的[[网页]]。Rails內建有[[Prototype (框架)|Prototype]]套件來實現这个技术。Ajax已经和Ruby on Rails结合在了一起成为了一个新的系统叫做“Ajax on Rails”。Rails提供一些助手工具来更方便地实现AJAX应用。&lt;br /&gt;
Rails提供了一些Helper，可以在服务器一端用纯Ruby语言生成给浏览器用的JavaScript代码，从而让Rails的开发者不需掌握JavaScript就可以简单方便的开发出AJAX的应用。&lt;br /&gt;
&lt;br /&gt;
== Rails和Web服务 ==&lt;br /&gt;
稍早的版本的Rails中提供了ActionWebService作为开发XML-RPC和SOAP的web服务的基础。但是最近的Rails 1.2更加倾向于是用[[REST]]方式的web服务，而ActionWebService在Rails 2.0中作为plugin而不再是rails核心的一部分。&lt;br /&gt;
&lt;br /&gt;
== Web服务器支持 ==&lt;br /&gt;
&lt;br /&gt;
对于开发和测试来说，一个很轻量的[[WEBrick]]網頁服务器已经被包含在了Ruby中，常被用来作为应用服务器。而对于生产应用，常推荐使用带[[FastCGI]]的[[Apache]]或者[[Lighttpd]]，但任何支持[[通用网关接口|CGI]]或者[[FastCGI]]的網頁伺服器都可以使用。在Apache上，mod_ruby也可以考虑用来提高性能。&lt;br /&gt;
&lt;br /&gt;
== 數據庫支持 ==&lt;br /&gt;
使用Rails的架構開發網絡應用一般都使用數據庫，所以推薦使用一個[[RDBMS|關聯式資料庫]]系統來進行數據存儲，若不能運行一個關聯式資料庫服務器，Rails支持嵌入式數據庫[[SQLite]]。Rails還支持關聯式資料庫系統，包括[[MySQL]]、[[PostgreSQL]]、[[IBM DB2]]、[[Oracle]]和[[SQL Server]]。&lt;br /&gt;
&lt;br /&gt;
== 系统要求 ==&lt;br /&gt;
*[[Ruby]]语言&lt;br /&gt;
*[[Web]]服务器，如[[Apache]]、[[lighttpd]]等。&lt;br /&gt;
*[[FastCGI]]，或者[[Mongrel]]为了提高效率&lt;br /&gt;
*数据库和驱动程序&lt;br /&gt;
&lt;br /&gt;
== 集成开发环境 ==&lt;br /&gt;
开发用的[[集成开发环境|IDE]]有：[[Eclipse]]，[[MyEclipse]]，[[NetBeans]]，[[RubyMine]]，[[Aptana]]，[[Sublime Text]]，[[Visual Studio Code]]&lt;br /&gt;
&lt;br /&gt;
== 类似的框架 ==&lt;br /&gt;
=== [[PHP]] 語言===&lt;br /&gt;
*[[CakePHP]]&lt;br /&gt;
*[[Laravel]]&lt;br /&gt;
*[[Yii]]&lt;br /&gt;
*[[CodeIgniter]]&lt;br /&gt;
&lt;br /&gt;
=== [[Python]]語言 ===&lt;br /&gt;
*[[Django]]&lt;br /&gt;
*[[TurboGears]]&lt;br /&gt;
&lt;br /&gt;
=== [[Perl]]語言 ===&lt;br /&gt;
*[[Catalyst]]&lt;br /&gt;
&lt;br /&gt;
=== [[Elixir]]語言 ===&lt;br /&gt;
*[[Phoenix_(web_framework)|Phoenix Framework]] &lt;br /&gt;
&lt;br /&gt;
=== [[Node.js]]環境  ===&lt;br /&gt;
*[[Sails.js]]&lt;br /&gt;
&lt;br /&gt;
== 参考文献 ==&lt;br /&gt;
{{Reflist}}&lt;br /&gt;
&lt;br /&gt;
== 外部链接 ==&lt;br /&gt;
=== 官方網站 ===&lt;br /&gt;
{{Wikibooks}}&lt;br /&gt;
&lt;br /&gt;
* {{en}}[http://www.rubyonrails.org Ruby On Rails官方網站]{{Wayback|url=http://www.rubyonrails.org/ |date=20070516200025 }}&lt;br /&gt;
* {{zh-hant}}[http://www.ruby-lang.org/zh_tw Ruby on Rails台灣官方網站]{{Wayback|url=http://www.ruby-lang.org/zh_tw |date=20140208095835 }}&lt;br /&gt;
&lt;br /&gt;
=== 其他 ===&lt;br /&gt;
* [http://ruby-china.org Ruby 中国社区]{{Wayback|url=http://ruby-china.org/ |date=20200818050535 }}&lt;br /&gt;
* [http://www.onlamp.com/pub/a/onlamp/2005/06/09/rails_ajax.html Onlamp.com的Ajax on Rails]{{Wayback|url=http://www.onlamp.com/pub/a/onlamp/2005/06/09/rails_ajax.html |date=20050806013106 }}&lt;br /&gt;
* [http://www-128.ibm.com/developerworks/linux/library/l-rubyrails/ Fast-track your Web apps with Ruby on Rails]{{Wayback|url=http://www-128.ibm.com/developerworks/linux/library/l-rubyrails/ |date=20050810012622 }}（[[David Mertz]] article at IBM [[developerWorks]]）&lt;br /&gt;
* [http://www-128.ibm.com/developerworks/cn/java/wa-rubyonrails/ Ruby on Rails和J2EE：两者能否共存？]{{Wayback|url=http://www-128.ibm.com/developerworks/cn/java/wa-rubyonrails/ |date=20051125171559 }}&lt;br /&gt;
* [https://archive.today/20070517233550/http://www.meshplex.org/wiki/Ruby/Ruby_on_Rails_programming_tutorials Full Ruby on Rails Tutorial]&lt;br /&gt;
* [http://www.infoq.com/cn/news/2007/06/yegge-rhino-on-rails Steve Yegge把Rails移植到JavaScript/Rhino]{{Wayback|url=http://www.infoq.com/cn/news/2007/06/yegge-rhino-on-rails |date=20070703120506 }}&lt;br /&gt;
* [https://web.archive.org/web/20130622151055/http://www.iteye.com/forums/tag/Ruby　Ruby编写的JavaEye中的ruby论坛]&lt;br /&gt;
&lt;br /&gt;
{{Application frameworks}}&lt;br /&gt;
&lt;br /&gt;
[[Category:自由發展元件與函式庫]]&lt;br /&gt;
[[Category:用Ruby编程的自由软件]]&lt;br /&gt;
[[Category:Web 2.0]]&lt;br /&gt;
[[Category:Web应用框架]]&lt;br /&gt;
[[Category:使用MIT许可证的软件]]&lt;br /&gt;
[[Category:MVC]]&lt;/div&gt;</summary>
		<author><name>~2025-43840-79</name></author>
	</entry>
</feed>