编辑推荐
The web framework Ruby on Rails for developing database——based web applications provides a Model-View Control-ler fralnework.The required web server WEBrick is included with Ruby on Rails.The frarnework iS configured with the MySqL database by default.but nlay he configured with another database,such as 0racle,SqL,et a1.The book covers developing web applications with Ruby on Rails.Technologies discussed include Ajax,directory services,and web services.A comparison is lnade with PHP.the most commonly u sed scripting language for developing web applications.
内容简介
Ruby on Rails是基于MVC模式的Web框架,用于开发基于数据库的Web应用。Ruby on Rails中内含了所需的Web服务器WEBrick。该框架配置的数据库除了缺省的MySQL外,还可以是Oracle、SQL Server等其他数据库。《Ruby on Rails实践之路:写给PHP和Java开发者的书》覆盖了使用Ruby on Rails开发Web应用的各项技术,包括Ajax、目录服务以及Web服务等。书中将Ruby on Rails与主流编程语言Java和开发Web应用最普遍的脚本语言PHP进行了比较,易于读者理解和掌握。书中提供的示例应用程序修改后读者可以直接用于实际的项目开发活动中。
《Ruby on Rails实践之路:写给PHP和Java开发者的书》适合高等院校软件工程专业师生以及Web应用开发人员、IT架构师、项目经理、系统管理员等技术人员阅读参考。
内页插图
目录
前言
1 Ruby
1.1 本章简介
1.2 安装Ruby
1.3 创建一个Ruby应用程序
1.4 标识符与注释
1.5 字符串
1.6 数组、哈希表与范围
1.7 变量、常量与运算符
1.8 类
1.9 方法
1.10 Proc对象和代码块block
1.11 控制结构与迭代子Iterator
1.12 异常处理
1.13 模块
1.14 Ruby与PHP的比较
1.15 Ruby与.Java的比较
1.16 本章小结
2 Rails框架
2.1 本章简介
2.2 Rails概述
2.3 活动记录
2.4 行为控制器
2.5 行为视图
2.6 Ruby on Rails命令
2.7 安装Rails
2.8 开发一个Rails应用程序
2.9 Rails路由
2.10 样式表
2.11 帮助器模块Helper
2.12 布局Layout
2.13 局部视图Partial
2.14 Rails框架实例
2.15 为Rails配置MySQL数据库
2.16 Rails与PHP的比较
2.17 Rails与Java的比较
2.18 本章小结
3 Rails中的CRUD操作
3.1 本章简介
3.2 脚手架
3.3 用PHP实现CRUD
3.4 用Java实现CRUD
3.5 创建一个Rails应用程序
3.6 创建数据库中的表
3.7 迁移Migration
3.8 用迁移创建数据库的catalogs表
3.9 配置Oracle数据库
3.10 配置SQL Server 2005数据库
3.11 开发一个CRUD应用程序
3.12 Ajax脚手架
3.13 合法性检验
3.14 本章小结
4 Rails中的Ajax
4.1 本章简介
4.2 Ajax概述
4.3 XMLHttpRequest概述
4.4 创建一个XMLHttpReqtlest对象
4.5 打开一个HTTP请求
4.6 发送一个HTTP请求
4.7 处理一个HTTP响应
4.8 在PHP中使用Ajax
4.9 在Java中使用Ajax
4.10 Rails对Ajax的支持
4.11 创建一个Ruby on Rails应用程序
4.12 创建一个数据库表
4.13 发送一个请求
4.14 处理一个请求
4.15 处理一个响应
4.16 本章小结
5 创建PDF和Excel报表
5.1 本章简介
5.2 用PHP创建PDF文档
5.3 用Java创建PDF文档
5.4 用Ruby on Rails创建PDF文件
5.5 在PDF中创建一个表格
5.6 用PHP创建电子表格
5.7 用Java创建电子表格
5.8 用Ruby on Rails创建Excel电子表格
5.9 用Ruby的Spreadsheet库创建电子表格
5.10 本章小结
6 Rails中的XML
6.1 本章简介
6.2 用PHP 5处理XML
6.3 用Java处理XML
6.4 安装XML Builder
6.5 用Ruby on Rails创建XML文档
6.6 从数据库创建XML文档
6.7 用REXML解析XML文档
6.8 本章小结
7 Rails框架之上的PHP框架
7.1 本章简介
7.2 安装PHP
7.3 安装PHPOn Trax
7.4 创建一个Trax应用程序
7.5 创建一个CRUD应用程序
7.6 本章小结
8 Rails对LDAP的支持
8.1 本章简介
8.2 安装OpenLDAP
8.3 安装Tivoli Directory Server
8.4 安装Oracle Internet Directory
8.5 在PHP中使用LDAP
8.6 在Java 中使用LDAP
8.7 安装NET::LDAP
8.8 创建一个Rails应用程序
8.9 创建一个目录项
8.10 修改一个目录项
8.11 查找一个目录项
8.12 删除一个目录项
8.13 本章小结
9 使用Rails开发Web Service
9.1 本章简介
9.2 用PHP实现Web Service
9.3 用Java实现Web Service
9.4 用Ruby on Rails创建一个Web Service
9.5 Web Service的API类
9.6 分发
9.7 协议客户端
9.8 本章小结
10 Eclipse中的Ruby on Rails
lO.1 本章简介
10.2 Eclipse 中的PHP
10.3 安装RDT
10.4 在RDT中创建一个Rails的工程
10.5 用RDT创建一个数据库表
10.6 用RDT创建一个CRUD应用程序
10.7 安装RadRails
10.8 用RadRails创建一个Rails应用程序
10.9 用RadRails创建一个CRUD应用程序
10.10 本章小结
11 Rails测试与夹具
11.1 本章简介
11.2 PHP与Java的单元测试
11.3 Rails测试的例子
11.4 断言类型
11.5 Rails测试
11.6 夹具
11.7 单元测试
11.8 测试控制器
11.9 本章小结
12 在产品模式的环境下运行Rails应用程序
12.1 本章简介
12.2 设置成产品模式
12.3 Rails最佳实践方法与性能
12.4 在Apache2和FastCGI上部署应用程序
12.5 Rails应用程序的Web主机托管
12.6 本章小结
索引
精彩书摘
11 Rails测试与夹具
11.1 本章简介
测试就是检测一个应用程序是否始终能够产生前后一致的结果以及证明一个 Rails应用程序能够像人们期望的那样工作。开发测试的工作是和实际应用程序 的开发工作一起进行的,当然也可以按照测试驱动的开发(test driven develoD-ment,TDD)那样,在创建实际应用程序之前就运行测试。在实际的Rails应用程序中运行测试的目的是希望能够将错误降至最低,同时为弄清楚导致应用程序失效的可能因素提供一些线索。
11.2 PHP与Java中的单元测试
很多开源测试工具都可以用于Java中的单元测试。junit就是实现Java单元测试的一个回归测试框架,其他的Java单元测试工具还有Abbot、junitPerf、Jameleon、DbUnit、XMLUnit for Java、jfcUnit、JTestCase、StrutsTestCase、SQLUnit和JTR(Java Test Runner,Java测试运行器)等。在JUnit中,测试方法都要用@Test进行注解。
前言/序言
1995年发布的Ruby①是一种开源的编程语言。Ruby在TIOBE编程社区索引④中排名第l0。Ruby on Rails是2004年发布的一种开源的Web框架,因其简单、可维护性好、开发速度快等优点而被广泛采用。计算机世界(Computer-world)网站④将Ruby on Rails列为2007年五大技术之一。
写这本书的动机
Ruby常被人拿来与PHP和Java作比较,其中PHP是最常用的脚本语言,而Java则是最常用的编程语言。在TIOBE索引的趋势图上你也许会注意到,自2006年中期开始Ruby的使用在增长,而PHP和Java的使用在降低。OReillyRadar⑤也注意到Ruby on Rails使用的增长趋势。客观地讲,Ruby on Rails在某 些方面性能优于PHP,如:
(1)与PHP相比,Ruby on Rails面向对象的程度更高,它提供了面向对象语言所有的内在优点,例如简单、模块化、可移植性、可扩展性、维护性以及可复用性。
(2)Ruby on Rails是Web框架,而PHP只是一种脚本语言。
(3)Ruby on Rails自带一个开发所需的Web服务器,而开发PHP程序时必须另安装Web服务器。
(4)Ruby on Rails实现了模型-视图-控制器(model-view-controller,MVC)这种架构,而PHP没有实现MVC架构,需要时必须另外实现。
(5)Ruby on Rails框架提供了创建-读取-修改-删除(create-read-update-de-lete,CRUD)功能,PHP并未提供。
虽然Java在可伸缩性、安全性、事务管理和开发工具的易获性方面都要优于 Ruby on Rails,但是Ruby on Rails在简易度、开发速度和可维护性方面又好于Java。Ruby on Rails提供的Web框架内部成分之间耦合紧密,该框架由持久化框架、Web应用程序框架和Web服务框架三部分构成。
Ruby on Rails 实践之路:写给 PHP 和 Java 开发者的书 跃迁,不止于语言。 您是一位经验丰富的 PHP 或 Java 开发者,在 Web 开发领域耕耘多年,早已熟悉了 MVC 架构、数据库交互、API 设计等核心概念。如今,您对 Ruby on Rails (RoR) 跃跃欲试,希望了解这个以“约定优于配置”和“快速开发”著称的框架,如何能帮助您在激烈的技术竞争中占据先机,构建更优雅、更高效的 Web 应用。 本书正是为像您这样的开发者量身打造。我们深知,您不只是需要一份简单的 API 文档或语法教程,您需要的是一个清晰的、基于实践的路径,能够帮助您理解 Rails 的设计哲学,掌握其核心工具,并最终将您的现有技能和经验,无缝地迁移到 Rails 的世界。我们不会从零开始解释“什么是 Web 开发”或是“什么是数据库”,而是直接切入 Rails 的核心,以您已有的知识体系为基石,为您构建起一座通往 Rails 生产力巅峰的桥梁。 本书将带您深入探索: 第一部分:破冰与迁移——理解 Rails 的哲学与核心 Rails 的“道”与“术”: 约定优于配置 (Convention over Configuration): 深入剖析这一核心原则,解释 Rails 如何通过预设的命名约定和文件结构,极大地减少了开发者需要手动配置的工作量。我们将对比 PHP 和 Java 中常见的配置项,例如数据库连接、路由设置、视图模板路径等,展示 Rails 如何通过“约定”来实现统一和简化。 Don't Repeat Yourself (DRY): 探讨 DRY 原则在 Rails 中的体现,以及它如何通过 Active Record、Action Controller、Action View 等组件,以及各种辅助方法和模块,帮助您编写更简洁、更易于维护的代码。我们会分析在 PHP 和 Java 中常见的代码重复场景,并展示 Rails 如何有效避免。 MVC (Model-View-Controller) 的 Rails 式解读: 虽然您对 MVC 并不陌生,但 Rails 的 MVC 实现有其独到的地方。我们将详细讲解 Rails 中的 Model(Active Record)、View(ERB/Slim/Haml)和 Controller(Action Controller)是如何协同工作的,以及它们之间的职责划分和数据流转。特别是 Active Record,它将如何彻底改变您与数据库交互的方式,让您摆脱冗长的 SQL 语句。 您的第一款 Rails 应用: 开发环境的搭建: 详细指导您如何快速搭建一个适合 Rails 开发的环境,包括 Ruby 的安装与管理(RVM/rbenv)、Rails 框架的安装,以及常用数据库(如 PostgreSQL, MySQL)的配置。我们将对比 PHP 和 Java 开发中常用的包管理器和环境配置工具,让您熟悉 Rails 的生态。 脚手架生成器 (Scaffolding): 演示 Rails 强大的脚手架功能,如何通过简单的命令 `rails generate scaffold` 快速生成一套完整的 CRUD(创建、读取、更新、删除)界面和后台逻辑。我们将分析生成的代码,让您理解 Rails 如何一次性为您完成大量重复性的工作。 数据库迁移 (Migrations): 深入讲解 Rails 的数据库迁移系统,它是如何管理数据库 schema 的变更,实现版本控制和跨环境同步的。您将学会如何创建、修改和回滚数据库表结构,这与许多 PHP 和 Java 项目中手动执行 SQL 脚本的方式有着本质的区别。 第二部分:构建核心功能——Rails 的强大组件解析 Active Record:对象-关系映射的优雅实现: 模型定义与关联: 学习如何定义 Rails 模型,以及如何使用 `has_many`, `belongs_to`, `has_and_belongs_to_many` 等宏定义模型之间的各种关联关系。我们将对比 JPA/Hibernate 在 Java 中对实体和关系的处理,以及 PHP ORM(如 Eloquent)的实现,突出 Active Record 的简洁和高效。 数据查询与操作: 掌握 Active Record 强大的查询接口,包括链式查询、范围 (scopes)、条件查询、排序、分页等。您将看到如何用 Ruby 的 DSL(领域特定语言)来表达复杂的数据库查询,告别繁琐的 SQL 拼接。 数据验证 (Validations): 学习如何在模型层实现数据验证,保证数据的完整性和一致性。我们将介绍各种内置的验证器,并演示如何自定义验证规则。 Action Controller:请求处理与业务逻辑: 路由 (Routing): 深入理解 Rails 的路由系统,如何将 URL 请求映射到相应的 Controller 动作。我们将分析 `config/routes.rb` 文件,学习如何定义 RESTful 风格的路由,以及如何组织复杂的路由结构。 Controller 动作与参数处理: 学习如何编写 Controller 动作来处理用户请求,接收参数,调用模型,并决定视图的渲染。您将了解 `params` 哈希,以及如何安全地处理用户输入。 视图与布局: 探索 Rails 的视图层,使用 ERB (Embedded Ruby) 模板语言,将动态数据嵌入到 HTML 中。学习如何使用布局 (layouts) 来统一应用的整体风格,以及如何使用部分视图 (partials) 来组织可重用的 UI 组件。我们会对比 PHP 的模板引擎(如 Twig, Blade)和 Java 的 JSP/Thymeleaf,突出 ERB 的简洁和灵活性。 Session 与 Cookie: 学习如何在 Rails 中管理用户会话和 Cookies,实现用户登录、购物车等功能。 Action View:视图渲染与用户体验: 表单构建与处理: 学习如何使用 Rails 提供的表单构建器 (`form_with`, `form_for`) 来生成 HTML 表单,并将其与模型进行绑定。掌握如何处理表单提交,以及文件上传等高级功能。 资源链接与 URL 助手: 了解 Rails 的 URL 助手如何帮助您生成动态的 URL,避免硬编码,提高代码的可维护性。 AJAX 支持: 学习如何在 Rails 中集成 AJAX,实现无刷新更新页面内容,提升用户体验。 第三部分:进阶主题与生产实践 RESTful API 的设计与实现: Rails API 模式: 学习如何为移动端或第三方应用构建 RESTful API。我们将重点关注 `rails new --api` 命令,以及如何使用 `ActiveModel::Serializers` 或 `Fast JSON API` 等库来高效地序列化数据。 身份验证与授权: 深入探讨常用的 API 身份验证机制,如 Token-based 认证,并学习如何使用 Devise 或 Pundit 等 gem 来实现用户认证和授权。 测试驱动开发 (TDD) 与 Rails: Rails 内置的测试框架: 学习如何使用 Rails 内置的 Minitest 或 RSpec 等测试框架编写单元测试、集成测试和系统测试。 测试的重要性与实践: 理解 TDD 如何帮助您构建更稳定、更可靠的应用程序,并指导您如何编写可测试的代码。我们将展示如何对模型、控制器和视图进行有效的测试。 部署与维护: 常用的部署流程: 了解将 Rails 应用部署到生产环境的常用流程,包括使用 Capistrano 或 Deployment 脚本。 性能优化与监控: 探讨 Rails 应用的性能优化技巧,如数据库查询优化、缓存策略、以及常用的性能监控工具。 Rails 生态系统与最佳实践: Gems 的应用: 介绍 Rails 丰富的 gem 生态系统,如何通过 `Gemfile` 管理第三方库,并重点介绍一些常用的、能够极大地提升开发效率和应用质量的 gem。 代码组织与设计模式: 分享 Rails 项目中常见的代码组织方式和设计模式,帮助您编写出更具扩展性和可维护性的代码。 本书的特点: 面向有经验的开发者: 我们直接切入 Rails 的核心,假设您已经掌握了 Web 开发的基本概念和技术。 实践导向: 每一章节都包含丰富的代码示例和实战练习,帮助您将理论知识转化为实际技能。 对比分析: 通过对比 PHP 和 Java 中相似的技术和概念,帮助您更好地理解 Rails 的优势和差异。 循序渐进: 从基础概念到高级主题,逐步引导您掌握 Rails 的方方面面。 强调“为什么”: 不仅教授“如何做”,更深入解释“为什么这么做”,帮助您理解 Rails 的设计哲学,从而触类旁通。 谁适合阅读本书? 正在考虑从 PHP 或 Java 转向 Ruby on Rails 的 Web 开发者。 希望通过 Rails 提升开发效率和代码质量的团队。 希望深入理解 Rails 设计理念和最佳实践的开发者。 现在,是时候让您的 Web 开发技能迈上新台阶了! 翻开本书,您将开启一段高效、优雅的 Rails 实践之旅,为您的技术栈注入新的活力。