《RubyonRailsWeb开发之旅》从Ruby和Rails的历史讲起,以在Rails框架上克隆故事共享网站digg.com为例,详细讲述了Ruby和Rails的安装过程、框架组成部分、与AJAX和Web2.0技术结合、安全措施、话题和扩展功能等。
《RubyonRailsWeb开发之旅》带领读者运用新的Web2.0技术和简洁的Ruby编程语言,建立数据库驱动的交互的易建、易用、易维护的网站应用。
《RubyonRailsWeb开发之旅》注重实用性,适合初学者迅速掌握Ruby开发工具的使用方法,为希望深入了解Rails框架并建立健壮网络应用的开发人员提供强大的技术支持。
目录
- 第1章Ruby oRails简介1
- 1.1历史3
- 1.2开发原则4
- 1.2.1惯例优先4
- 1.2.2不重复自我5
- 1.2.3灵活的开发6
- 1.3构建Web应用程序示例7
- 1.3.1digg简介7
- 1.3.2应用程序示例的特性8
- 1.4小结9
- 第2章技术准备11
- 2.1所需软件的成本12
- 2.2在Windows系统上安装Ruby oRails12
- 2.3在Mac OS X系统上安装Ruby oRails14
- 2.3.1Mac OS X 10.5(Leopard)14
- 2.3.2Mac OS X 10.4(Tiger)和更早的版本15
- 2.4在Linux系统上安装Ruby oRails22
- 2.4.1使用包管理器22
- 2.4.2先决条件22
- 2.4.3在Linux上安装Ruby23
- 2.4.4在Linux上安装RubyGems24
- 2.4.5在Linux上安装Rails25
- 2.4.6在Linux上安装MySQL26
- 2.5建立基础28
- 2.5.1管理所有内容的单目录结构28
- 2.5.2创建标准目录结构29
- 2.6开始编写应用程序30
- 2.7选择文本编辑器32
- 2.7.1Windows文本编辑器32
- 2.7.2Mac OS X文本编辑器33
- 2.7.3Linux和交叉平台编辑器35
- 2.8小结35
- 第3章Ruby简介36
- 3.1Ruby是脚本语言36
- 3.1.1编译语言36
- 3.1.2脚本语言37
- 3.1.3较大的性能争议37
- 3.2Ruby是面向对象的语言37
- 3.3读写Ruby代码40
- 3.3.1交互式的Ruby界面(irb)40
- 3.3.2与Ruby对象交互41
- 3.3.3Ruby中的标点42
- 3.4在Ruby中使用面向对象编程44
- 3.4.1类和对象45
- 3.4.2对象层功能45
- 3.4.3类层功能48
- 3.4.4继承50
- 3.4.5返回值50
- 3.5标准输出51
- 3.6Ruby核心类52
- 3.6.1数组52
- 3.6.2散列表53
- 3.6.3字符串54
- 3.6.4数字55
- 3.6.5符号56
- 3.6.6空值57
- 3.7运行Ruby文件57
- 3.8控制结构58
- 3.8.1条件59
- 3.8.2循环61
- 3.8.3块62
- 3.9小结64
- 第4章Rails揭秘65
- 4.13种环境65
- 4.2数据库配置66
- 4.2.1数据库配置文件66
- 4.2.2创建数据库67
- 4.3MVC体系结构69
- 4.3.1MVC理论69
- 4.3.2MVC的Rails方式70
- 4.3.3ActiveRecord(模型)71
- 4.3.4ActionPack模块74
- 4.4代码生成77
- 4.5ActionMailer78
- 4.6测试和调试79
- 4.6.1测试79
- 4.6.2调试80
- 4.7MySQL的图形用户接口工具80
- 4.8小结82
- 第5章模型、视图和控制器84
- 5.1创建模型84
- 5.1.1模型生成器84
- 5.1.2使用移植修改模式87
- 5.1.3使用Rails控制台管理数据91
- 5.1.4隐藏的SQL语句94
- 5.2生成控制器95
- 5.2.1运行generate脚本95
- 5.2.2输出结果分析96
- 5.2.3返回应用程序97
- 5.3创建视图98
- 5.3.1用支架生成视图99
- 5.3.2创建静态页面100
- 5.3.3创建动态页面100
- 5.3.4反复传递数据101
- 5.3.5引入模型102
- 5.4小结103
- 第6章助手、窗体和布局104
- 6.1可信任助手104
- 6.2故事提交105
- 6.2.1创建窗体105
- 6.2.2保存数据到数据库中109
- 6.2.3创建布局110
- 6.2.4用户反馈和闪存112
- 6.3测试窗体117
- 6.3.1测试模型117
- 6.3.2测试控制器121
- 6.3.3再次访问日志126
- 6.4小结127
- 第7章AJAX与Web 2.0128
- 7.1生成投票模型128
- 7.1.1创建模型128
- 7.1.2创建移植129
- 7.1.3执行移植130
- 7.2关系130
- 7.2.1has_many子句130
- 7.2.2belongs_to子句132
- 7.2.3关系框架133
- 7.3简洁URL与Permalink133
- 7.3.1实现简洁URL134
- 7.3.2为故事增加Permalink135
- 7.3.3故事显示137
- 7.4AJAX与Rails139
- 7.4.1AJAX简介139
- 7.4.2使用Prototype调用远程脚本140
- 7.4.3使用.aculo.us完成视觉效果140
- 7.4.4“推选”故事142
- 7.5Partial简介149
- 7.5.1添加投票历史记录150
- 7.5.2创建partial151
- 7.5.3投票历史记录样式151
- 7.5.4处理投票历史记录153
- 7.6测试投票功能154
- 7.6.1测试模型154
- 7.6.2测试控制器158
- 7.6.3运行完整测试体系161
- 7.7小结162
- 第8章安全措施163
- 8.1session和cookie163
- 8.1.1单一用户认证163
- 8.1.2cookie164
- 8.1.3session165
- 8.1.4Rails中的session165
- 8.2User模型167
- 8.2.1生成User模型167
- 8.2.2为User类添加关系168
- 8.2.3创建User169
- 8.3登录功能170
- 8.3.1创建控制器170
- 8.3.2创建视图170
- 8.3.3增加控制器功能172
- 8.4过滤器174
- 8.4.1before过滤器174
- 8.4.2after过滤器174
- 8.4.3around过滤器175
- 8.4.4关于过滤方法175
- 8.5用户登录管理176
- 8.5.1检索当前用户176
- 8.5.2显示当前用户姓名177
- 8.5.3允许用户退出179
- 8.6添加导航菜单180
- 8.7限制应用182
- 8.7.1保护表单182
- 8.7.2限制访问故事提交184
- 8.7.3建立故事和用户的关联185
- 8.8测试用户验证186
- 8.8.1测试模型187
- 8.8.2测试控制器190
- 8.9小结198
- 第9章高级话题199
- 9.1受欢迎故事晋级199
- 9.1.1使用计数器缓存199
- 9.1.2完成首页202
- 9.1.3实现投票箱205
- 9.1.4抽象表示逻辑206
- 9.1.5请求用户登录来投票209
- 9.1.6添加故事属性211
- 9.2自动生成Permalinks212
- 9.2.1模型回调213
- 9.2.2添加回调214
- 9.3扩展提交窗体215
- 9.4添加用户页面217
- 9.4.1join模型关系217
- 9.4.2has_many:through关联217
- 9.4.3修改控制器218
- 9.4.4建立视图219
- 9.5测试新功能220
- 9.5.1测试模型221
- 9.5.2测试StoryController224
- 9.5.3测试AccountController228
- 9.5.4运行完整的测试包228
- 9.6小结229
- 第10章Rails插件231
- 10.1插件简介231
- 10.2为Shovell添加标签232
- 10.2.1acts_as_taggable插件233
- 10.2.2实现标签提交238
- 10.2.3标签显示239
- 10.2.4创建标签241
- 10.2.5根据标签显示故事242
- 10.3测试标签功能243
- 10.3.1测试模型243
- 10.3.2测试控制器245
- 10.3.3运行测试体系247
- 10.4小结248
- 第11章调试、测试和基准测试249
- 11.1调试应用程序249
- 11.1.1模板内调试250
- 11.1.2使用断点进行测试254
- 11.1.3使用Rails日志工具258
- 11.1.4克服调试中的问题260
- 11.2测试应用程序260
- 11.2.1集成测试260
- 11.2.2使用断点262
- 11.2.3Rails控制台264
- 11.3应用程序基准测试266
- 11.3.1从日志文件中取出基准266
- 11.3.2手动基准测试268
- 11.4小结270
- 第12章部署和产品使用271
- 12.1“产品”的含义271
- 12.2选择产品环境272
- 12.2.1Web服务器选项273
- 12.2.2后台选项274
- 12.3部署Shovell275
- 12.4session存储的选择283
- 12.4.1ActiveRecord存储会话容器283
- 12.4.2MemCached存储会话容器284
- 12.5知识拓展284
- 12.5.1缓存284
- 12.5.2版本控制与部署管理285
- 12.5.3E-mail错误通知285
- 12.6小结286