Ruby on Rails (官 かん 方 かた 简称为Rails,亦 また 被 ひ 简称为RoR),是 ぜ 一 いち 个使用 しよう Ruby 语言写 うつし 的 てき 开源 Web应用框 かまち 架 か ,它是严格按照MVC 结构开发,努力 どりょく 使 し 自身 じしん 保持 ほじ 简单,使 つかい 实际应用开发时的代 だい 码更少 しょう ,使用 しよう 最少 さいしょう 的 てき 配置 はいち 。
Rails的 てき 设计原 げん 则包括 ほうかつ “不 ふ 做重复的事 ごと ”(Don't Repeat Yourself)和 かず “惯例优于设置 ”(Convention Over Configuration)。
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框 かまち 架 か 是 ぜ 以固定 こてい 的 てき 命名 めいめい 习惯来 き 自 じ 动判断 はんだん 整 せい 个架构,默 だま 认下会 かい 将 はた 网址分析 ぶんせき 成 なり http://domain-name/ControllerName/ActionName/Attribute/ 然 しか 后 きさき 执行目 め 标Controller中 ちゅう 的 てき Action,并取出 で 指定 してい 的 てき View(视图)回 かい 传给浏览器 き 显示。
面 めん 对数据 すえ 库则以Model(模 かたぎ 块)的 てき 形式 けいしき ,借 か 由 ゆかり Active Record作 さく 为与数 すう 据 すえ 库之间的传输接 せっ 口 こう 。
Ruby on Rails的 てき 模型 もけい -视图-控 ひかえ 制 せい 器 き 架 か 构由以下 いか 各 かく 部分 ぶぶん 组成:
模型 もけい 包含 ほうがん 着 ぎ 应用的 てき 状 じょう 态,状 じょう 态可能 かのう 是 ぜ 临时的 てき 也可能 かのう 是 ぜ 长久性 せい 保 ほ 存在 そんざい 数 すう 据 すえ 库中的 てき 。需要 じゅよう 注意 ちゅうい 的 てき 是 ぜ 模型 もけい 不 ふ 仅包含 ほうがん 数 すう 据 すえ ,而且包含 ほうがん 数 すう 据 すえ 代表 だいひょう 的 てき 逻辑。在 ざい Rails中 ちゅう ,模型 もけい 通常 つうじょう 是 ぜ 由 よし 一些代表关系数据库中RDBMS表 ひょう 的 てき 类组成 なり 的 てき 。
在 ざい Rails中 ちゅう ,模型 もけい 类是通 どおり 过Active Record 模 も 式 しき 进行处理的 てき 。一般 いっぱん 来 らい 说,程 ほど 序 じょ 员要做的是 ぜ 继承ActiveRecord
类,同 どう 时程序 じょ 会 かい 自 じ 动计算出 さんしゅつ 要 よう 使用 しよう 哪个RDBMS表 ひょう ,这个表 ひょう 有 ゆう 哪些列 れつ 。表 ひょう 与 あずか 表 ひょう 之 の 间的关系通 どおり 过简单的命令 めいれい 来 らい 指 ゆび 明 あかり 。
View负责根 ね 据 すえ Model中 ちゅう 的 てき 数 すう 据 すえ 显示用 よう 户界面 めん 。作 さく 为web应用,Rails里 さと 的 てき View通常 つうじょう 是 ぜ 生成 せいせい 整 せい 个或者 しゃ 部分 ぶぶん 网页。当然 とうぜん 可 か 以是XML或 ある 者 もの 甚至是 ぜ JavaScript 代 だい 码。表 おもて 现为使用 しよう 内 ない 嵌 はま Ruby的 てき HTML /XML /JavaScript 模 も 板 ばん 。
控 ひかえ 制 せい 器 き 将 しょう 用 よう 户界面 めん 和 わ 数 すう 据 すえ 模型 もけい 关联起 おこり 来 らい ,并充当 とう 协调运作的 てき 角 かく 色 しょく 。它接收 せっしゅう 各 かく 种用户操作 そうさ ,更新 こうしん 数 すう 据 すえ 模型 もけい ,并用合 あい 适的view展示 てんじ 结果给用户。像 ぞう 他 た 的 てき 名字 みょうじ 一 いち 样,可 か 以说应用的 てき 主要 しゅよう 控 ひかえ 制 せい 中心 ちゅうしん 就是各 かく 个控制 せい 器 き 。
ActiveRecord实现了 りょう Rails的 てき 对象关系映 うつ 射 い 。
控 ひかえ 制 せい 器 き 和 わ 视图:ActionPack[ 编辑 ]
ActionController是 ぜ Rails中 ちゅう 的 てき 控 ひかえ 制 せい 器 き ,提供 ていきょう 各 かく 种方法 ほう 供用 きょうよう 户操作 そうさ 使用 しよう 。
ActionView是 ぜ Rails中 ちゅう 的 てき 视图,负责展 てん 现用户界面 めん 。
常用 じょうよう 实用工具 こうぐ :ActiveSupport[ 编辑 ]
ActiveSupport包 つつみ 提供 ていきょう 一些工具和支持代码。
ActionMailer 用 もちい 来 らい 发送和 わ 接收 せっしゅう email 。
Web服 ふく 务:ActionWebService[ 编辑 ]
ActionWebService 来 らい 提供 ていきょう SOAP 和 わ XML-RPC 支持 しじ 。需要 じゅよう 注意 ちゅうい 的 てき 是 ぜ ,Rails趋向使用 しよう 更 さら 加 か 简单明 あきら 了 りょう 的 てき REST方式 ほうしき web服 ふく 务而不 ふ 再 さい 提 ひさげ 倡SOAP格式 かくしき 的 てき web服 ふく 务。ActionWebServices在 ざい 未来 みらい 的 てき 版本 はんぽん 里 さと 面会 めんかい 逐步淡 あわ 出 で 。
用 よう REST对Web服 ふく 务提供 ていきょう 了 りょう 优秀的 てき 支持 しじ 。这种风格的 てき Web服 ふく 务使用 しよう 指定 してい 的 てき 资源。
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中 ちゅう 提供 ていきょう 了 りょう ActionWebService作 さく 为开发XML-RPC和 わ SOAP的 てき web服 ふく 务的基 もと 础。但 ただし 是 ぜ 最近 さいきん 的 てき Rails 1.2更 さら 加 か 倾向于是用 よう REST 方式 ほうしき 的 てき web服 ふく 务,而ActionWebService在 ざい Rails 2.0中 ちゅう 作 さく 为plugin而不再 さい 是 ぜ rails核心 かくしん 的 てき 一 いち 部分 ぶぶん 。
对于开发和 わ 测试来 らい 说,一 いち 个很轻量的 てき WEBrick 网页伺服器 き 已 やめ 经被包含 ほうがん 在 ざい 了 りょう Ruby中 ちゅう ,常 つね 被 ひ 用 よう 来 らい 作 さく 为应用 よう 伺服器 き 。而对于生产应用 よう ,常 つね 推荐使用 しよう 带FastCGI 的 てき Apache 或 ある 者 もの Lighttpd ,但 ただし 任 にん 何 なん 支持 しじ CGI 或 ある 者 もの FastCGI 的 てき 网页伺服器 き 都 と 可 か 以使用 しよう 。在 ざい Apache上 じょう ,mod_ruby也可以考虑用来 らい 提 ひさげ 高性能 こうせいのう 。
使用 しよう Rails的 てき 架 か 构开发网络应用 よう 一般都使用数据库,所以 ゆえん 推荐使用 しよう 一 いち 个关系数 すう 据 すえ 库 系 けい 统来进行数 すう 据 すえ 存 そん 储,若 わか 不能 ふのう 运行一个关系数据库伺服器,Rails支持 しじ 嵌入 かんにゅう 式 しき 数 すう 据 すえ 库SQLite 。Rails还支持 しじ 关系数 すう 据 すえ 库系统,包括 ほうかつ MySQL 、PostgreSQL 、IBM DB2 、Oracle 和 わ SQL Server 。
开发用 よう 的 てき IDE 有 ゆう :Eclipse ,MyEclipse ,NetBeans ,RubyMine ,Aptana ,Sublime Text ,Visual Studio Code