Rails项目实战剖析与技巧大全
版权信息书 名: Rails项目实战剖析与技巧大全

作者:(美国)(EldonAlameda)阿兰梅达
出版社:电子工业出版社
出版时间: 2008
ISBN: 9787121068775
开本: 16
定价: 59.80 元
内容简介如果你是一个已经领略过RubyonRails威力的开发人员,又想进一步提升Rails技能,本书对你而言将是无价之宝。本书的重点并不在于该框架的应用基础,而是聚焦于带你感受众多真实案例的开发实践,包括博客、个人备忘录、日历、一个由PHP移植为Rails的网站实例等。每一应用实例均来自最佳实践,包括类型、功能、多种Rails插件应用、Rails引擎和RubyGem。同时,也探讨最先进的Rails功能,诸如新的REST执行和ActiveResource。作为必要的回顾,本书在直接进入项目实践之前,先向读者介绍了一个理想开发环境的建立。全书内容包括:如何基于Windows、MacOSX和Linux建立Rails;如何配合MySQLandSQLite数据库使用Rails;如何合并最新插件、引擎和RubyGems到应用中,以节省开发时间;如何使用YahooYUI轻松实现一致的应用风格;如何将PHP站点翻新为Rails;如何使用Ajax技术为应用增色;如何使用最先进的Rails功能,如REST和ActiveResource。
本书适合程序开发人员参考学习,还可以作为高等院校相关专业师生的参考书。
作者简介EldonAlameda是一名Web开发人员,现居住于气候寒冷的堪萨斯州。他现在为堪萨斯市一家刚起步的小型科技公司开发RubyonRails应用。在这之前,他在当地的广告公司、SprintPCS及IBM等多家公司从事过软件开发工作。
目录第1部分必要的准备工作(请不要跳过这一部分)
第1章搭建开发环境3
1.1安装Ruby和Rails3
1.1.1在Linux上安装Ruby4
1.1.2在Windows上安装Rails4
1.1.3在MacOSX上安装Rails5
1.2安装数据库6
1.2.1安装SQLite7
1.2.2安装SQLiteRubygem7
1.3代码编辑工具8
1.3.1Windows8
1.3.2Linux11
1.3.3Mac11
1.3.4建议13
1.4安装Web服务器13
1.4.1WEBrick13
1.4.2Mongrel14
1.5最后给读者的建议16
1.5.1使用版本控制系统16
1.5.2使用Capistrano实现自动部署17
1.6本章小结19
第2章创建Rails应用程序21
2.1创建步骤21
2.1.1步骤1:创建项目21
2.1.2步骤2:配置数据库25
2.1.3步骤3:测试应用程序26
2.1.4步骤4:安装样式表(StyleSheet)27
2.1.5步骤5:将应用程序与Rails绑定27
2.2本章小结28
第2部分MonkeyTasks日常任务管理
第3章实现用户注册与认证管理31
3.1创建页面布局31
3.1.1初始化布局32
3.1.2第一个视图模板35
3.2添加用户注册与认证管理36
3.2.1配置ActsasAuthenticated39
3.2.2实现用户注册功能41
3.2.3发送邮件通知43
3.3本章小结49
第4章实现日常待办事项管理51
4.1创建Task模型类51
4.2创建Task控制器53
4.3添加任务表单55
4.4更好的日期选择控件56
4.5Schedule模型59
4.6Todo模型60
4.7实现任务列表功能62
4.8实现日程表功能64
4.8.1安排任务65
4.8.2显示日程表66
4.9使用局部模板(Partial)68
4.10使用Ajax71
4.10.1可排序元素71
4.10.2RJS72
4.11本章小结74
第5章完善MonkeyTasks77
5.1添加验证功能(Validation)77
5.2任务修改功能77
5.3添加日历(Calendar)77
5.4查看以前的任务78
5.5记录每个任务的预计时间78
5.6显示任务完成率78
5.7开发iPhone接口79
5.8优化数据库查询79
5.9将代码移到模型类中80
5.10绑定ChronicGem81
5.11本章小结81
第3部分Exercisr应用程序
第6章开发基于REST的应用程序85
6.1基于REST的开发85
6.1.1什么是REST85
6.1.2REST的价值86
6.2第一个资源87
6.2.1REST工具87
6.2.2创建Exercise资源91
6.3添加基于REST的认证功能96
6.4改进外观显示102
6.5创建新的用户103
6.6完成Exercise资源106
6.6.1创建模型间关联关系106
6.6.2修改Exercise控制器的作用域107
6.6.3运动(Exercise)视图109
6.7Workout资源112
6.7.1Workout模型及其关联关系112
6.7.2Workout控制器112
6.7.3修改视图114
6.8记录锻炼过程中的数据116
6.8.1创建Activity模型类及其关联关系117
6.8.2修改Activity路由119
6.8.3修改Activity控制器120
6.8.4修改Activity视图模板122
6.8.5修改Workout控制器中的show方法124
6.8.6改进添加Activity的表单125
6.9跟踪锻炼目标127
6.9.1修改模型类127
6.9.2创建嵌套路由128
6.9.3配置控制器128
6.9.4配置视图132
6.9.5记录上一次结果136
6.9.6探索REST接口136
6.10本章小结139
第7章为应用程序添加图形功能141
7.1第二阶段开发141
7.2Rails中的图表141
7.2.1CSS图表141
7.2.2Sparklines144
7.2.3Gruff图表147
7.2.4Scruffy153
7.2.5Ziya155
7.3本章小结162
第8章完善Exercisr163
8.1为接口添加RJS163
8.2创建日历来显示锻炼的时间163
8.3对图表进行缓存164
8.4使首页也符合REST要求164
8.5开发更多的图表164
8.6调整模型类和控制器中的业务逻辑164
8.7开发网络交流功能165
8.8本章小结165
第4部分简单的博客程序
第9章使用Typo创建博客程序169
9.1Typo介绍169
9.1.1Typo的特点170
9.1.2安装Typo170
9.1.3激活TypoBlog171
9.2Rails的启动过程173
9.3理解Typo177
9.4Rails如何对请求进行路由181
9.5确定设计方案187
9.6使用Typo188
9.6.1管理Blog190
9.6.2添加内容191
9.7定制Typo192
9.7.1管理主题192
9.7.2关于主题193
9.7.3创建自定义主题193
9.7.4创建侧边栏(Sidebar)组件198
9.7.5自定义侧边栏组件199
9.8本章小结200
第10章创建一个简单的博客引擎(Engine)201
10.1我们将创建什么样的引擎201
10.2创建第一组模型类202
10.3创建API205
10.3.1MetaWeblog服务API207
10.3.2支持BloggerAPI209
10.3.3支持图像222
10.4创建博客的展现界面228
10.4.1创建基本的布局228
10.4.2修改Application控制器230
10.4.3创建首页230
10.4.4查看某篇日志234
10.5本章小结238
第11章完善博客程序239
11.1开发BloggerAPI239
11.2使用Mephisto来创建Blog程序239
11.3定制Typo239
11.4在方法中实现认证功能240
11.5添加缓存(Caching)240
11.6添加评论和Akismet垃圾广告过滤功能240
11.7添加Web后台管理241
11.8针对分类的RSS文件(Feed)241
11.9实现标签(Tag)功能241
11.10本章小结242
第5部分使用缓存构建一个Web漫画站点
第12章使用页面缓存构建基本的系统245
12.1基本的管理系统246
12.1.1上传漫画247
12.1.2Comic模型248
12.1.3修改路由251
12.1.4修改脚手架(Scaffolding)252
12.1.5创建一个漫画254
12.1.6简单的认证系统256
12.1.7限制访问258
12.2向公众展现漫画259
12.3页面缓存261
12.3.1开启缓存功能262
12.3.2清除缓存266
12.4本章小结268
第13章实现高级缓存269
13.1Members控制器270
13.2限制其他用户的访问271
13.3缓存付费成员的页面273
13.4使缓存页面过期275
13.5片段缓存276
13.5.1自定义布局277
13.5.2清除片段缓存282
13.6本章小结282
第14章完善Web漫画站点285
14.1添加一个博客(Blog)285
14.2集成一个论坛(Forum)285
14.3通过日期来选择漫画286
14.4完善身份认证系统286
14.5本章小结286
第6部分教会社区网站
第15章用户和档案管理291
15.1安装Restful认证291
15.2我们即将要创建什么294
15.2.1创建共享布局295
15.2.2Avatar模型296
15.2.3用户的详细信息模型298
15.2.4创建示例用户300
15.2.5Profile控制器301
15.3修改用户的详细信息和头像304
15.3.1修改档案信息305
15.3.2查看档案308
15.4添加博客功能309
15.5在用户页面中添加博客摘要317
15.6添加相册功能319
15.7添加照片321
15.8相册与照片控制器323
15.8.1创建一个新的相册324
15.8.2查看指定相册325
15.8.3显示所有用户的相册326
15.9本章小结328
第16章完善社区站点329
16.1创建社区主页329
16.1.1创建默认路由329
16.1.2index页面330
16.1.3创建首页334
16.2添加用户目录336
16.2.1创建字母索引336
16.2.2创建路由337
16.2.3添加directory方法337
16.2.4修改视图模板338
16.3添加导航339
16.3.1上部导航339
16.3.2页脚导航340
16.4添加评论340
16.4.1安装acts_as_commentable插件341
16.4.2显示评论342
16.4.3添加评论345
16.5本章小结351
第17章完善教会社区应用353
17.1创建用户导入或注册功能353
17.2使用SWFupload批量上传照片353
17.3添加好友列表功能354
17.4改进主页355
17.5清理部分Ruby代码355
17.6将代码移到局部模板(Partial)中355
17.7添加缓存功能357
17.8本章小结357
第7部分GamingTrend网站
第18章PHP网站的遗留问题361
18.1简要介绍当前系统362
18.1.1当前系统的代码363
18.1.2遗留系统存在的问题365
18.2建立我们的应用程序366
18.3使用Ext-JS建立更好的界面368
18.3.1BorderLayout369
18.3.2表格(Grid)370
18.3.3对话框(Dialog)371
18.3.4消息框(MessageBox)372
18.4在Rails应用程序中安装Ext-JS373
18.5自动化Ext-JS安装374
18.6本章小结378
第19章转化游戏记录379
19.1对数据库进行迁移转化379
19.2Games表381
19.3创建Game模型385
19.4创建Developer和Publisher模型387
19.5创建Genres模型391
19.6配置路由393
19.7创建控制器393
19.8创建视图396
19.8.1标准布局396
19.8.2使用ExtBorderLayout改进布局页面399
19.9定义工作流(Workflow)402
19.9.1显示当前资源列表402
19.9.2创建一个新资源402
19.9.3删除指定资源403
19.9.4修改指定资源403
19.10建立开发商页面403
19.10.1显示开发商列表403
19.10.2修改开发商记录408
19.10.3改进表格410
19.10.4在工具栏上增加按钮417
19.10.5删除开发商记录418
19.10.6新建开发商记录421
19.11将工作流抽象为辅助方法423
19.12创建Show/Edit模板433
19.13游戏435
19.13.1处理选择列表框440
19.13.2提供所见即所得(WYSIWYG)功能442
19.14查看游戏截图446
19.15本章小结452
第20章新闻管理功能453
20.1修改数据库453
20.2创建新闻模型455
20.3创建控制器457
20.4创建列表视图458
20.4.1重定义index方法458
20.4.2创建index视图458
20.4.3修改表格460
20.5捕获创建中的错误信息471
20.6新闻编辑页面472
20.6.1编辑新闻472
20.6.2激活(Activate)邮件474
20.6.3为新闻建立关联关系476
20.7本章小结483
第21章完善游戏网站485
21.1创建自己的生成器(Generator)485
21.2添加登录功能485
21.3在新闻中关联发行商、开发商和游戏机型487
21.4创建一个游戏机型常量487
21.5增加包装图片和游戏截图的上传功能487
21.6支持游戏评论488
21.7支持较长内容488
21.8添加ActsasParanoid插件488
21.9将逻辑移到模型中489
21.10本章小结489
第8部分使用EdgeRails(Rails2.0)集成REST应用程序
第22章Highrise的简要介绍493
22.1注册一个Highrise账户493
22.2创建联系人495
22.3创建任务496
22.4Highrise的更多功能496
22.5本章小结497
第23章集成Highrise的RESTAPI499
23.1浏览API499
23.2使用RESTAPI501
23.3新建EdgeRails项目502
23.3.1获得Rails的Edge版本503
23.3.2创建EdgeRails应用程序503
23.4测试我们的连接505
23.5本章小结507
第24章创建预约程序509
24.1我们要创建什么样的程序509
24.2设计布局草图509
24.2.1安装Ext510
24.2.2使用Yahoo地图510
24.2.3获取应用程序ID511
24.2.4布局脚本511
24.3Home控制器512
24.4添加任务列表516
24.5显示待办任务518
24.5.1创建变量519
24.5.2建立数据源520
24.5.3在地图上显示客户525
24.6管理备忘记录(Notes)527
24.6.1显示备忘信息528
24.6.2添加备忘信息528
24.6.3使用AJAX更新备忘信息529
24.7本章小结531
第25章完善Rails2.0应用程序533
25.1改进Highrise项目533
25.1.1缓存客户数据533
25.1.2创建约会533
25.1.3修改客户信息534
25.2EdgeRails2.0的新特性534
25.2.1SexyMigrations534
25.2.2自动生成迁移代码534
25.2.3数据库命令535
25.2.4查看路由535
25.2.5查询缓存535
25.2.6改善REST风格的路由536
25.2.7从框架中移除的功能536
25.3本章小结537
……