词条 | Rails项目实战剖析与技巧大全 |
释义 | Rails项目实战剖析与技巧大全全书内容包括:如何基于Windows、Mac OS X和Linux建立Rails;如何配合MySQL and SQLite数据库使用Rails;如何合并最新插件、引擎和Ruby Gems到应用中,以节省开发时间;如何使用Yahoo YUI轻松实现一致的应用风格;如何将PHP站点翻新为Rails;如何使用Ajax技术为应用增色;如何使用最先进的Rails功能,如REST和Active Resource。 版权信息书 名: Rails项目实战剖析与技巧大全 作 者:(美国)(EldonAlameda)阿兰梅达 出版社: 电子工业出版社 出版时间: 2008 ISBN: 9787121068775 开本: 16 定价: 59.80 元 内容简介如果你是一个已经领略过RubyonRails威力的开发人员,又想进一步提升Rails技能,本书对你而言将是无价之宝。本书的重点并不在于该框架的应用基础,而是聚焦于带你感受众多真实案例的开发实践,包括博客、个人备忘录、日历、一个由PHP移植为Rails的网站实例等。每一应用实例均来自最佳实践,包括类型、功能、多种Rails插件应用、Rails引擎和RubyGem。同时,也探讨最先进的Rails功能,诸如新的REST执行和ActiveResource。作为必要的回顾,本书在直接进入项目实践之前,先向读者介绍了一个理想开发环境的建立。 本书适合程序开发人员参考学习,还可以作为高等院校相关专业师生的参考书。 作者简介EldonAlameda是一名Web开发人员,现居住于气候寒冷的堪萨斯州。他现在为堪萨斯市一家刚起步的小型科技公司开发RubyonRails应用。在这之前,他在当地的广告公司、SprintPCS及IBM等多家公司从事过软件开发工作。 编辑推荐尊敬的读者: 实践出真知。因此我相信学习Rails最好的办法,就是用其来创建各种各样的应用程序,只有这样才能完全掌握这项技术。 在本书中,假设读者已经具备了使用Ruby on Rails框架的基础知识,已经了解其众多令人激动的功能并希望能够从中获益。而现在,相信你正需要通过创建一些不同类型的Web应用程序,来获得这些功能的第一手开发经验。这也是本书的主要出发点,通过带领读者创建多个实际Rails应用项目,使大家能够掌握最实用的开发经验。其中涉及到丰富而完整的核心Rails特性。 在深入探讨这些内容的同时,我们还将完成一系列的项目。包括创建含有外部API的一个简单博客,以REST方式构建、由图表进行展现的一个锻炼情况跟踪记录程序,以及通过添加高级的JavaScript接口将已有的一个PHP网站转换为Rails实现。除了以上这些,在最后一个项目中,我们还将使用最新版本的Rails及Active Resource来创建一个应用程序,同时介绍一些Rails 2.0中的变动和新增功能。 在本书中,每个项目都提供了必要的信息和工具。使得读者在解决实际问题时可以轻易上手,并且在每个项目最后还包括一些额外的创意和练习。读者可以按照自己的需要对这些应用程序进行扩展和改进。 目录第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 …… 书摘搭建开发环境Miracle Max:你催促一个制造奇迹的人,只能得到一个糟糕的奇迹。 ——摘自William Goldman编剧的影片《公主新娘(The Princess Bride)》,1987年 为了能够运行本书中的项目,首先需要保证在机器上已经安装了如下的软件。Ruby和Rails:因为Rails是一个针对于Ruby的框架,并且其自身也是使用Ruby编写的,所以首先需要安装Ruby。对于本书来说,Ruby的版本应该在1.8.4以上。稍后我会讲解一些如何快速并且正确安装Ruby及Rails的方法。 数据库(Database):Rails框架是针对于创建基于数据库驱动(Database—driven)的Web应用程序。因此如果没有连接数据库的话,这个框架很可能无法启动。稍后会讨论开发中经常会使用的几种数据库类型。 代码编辑器(Code Editor):虽然从Rails的开发理论上来说,只要使用文本编辑器(可以创建和修改文本文件)就足够了,但是由于在实际中可能会牵扯到大量的文件,所以我们在后面会介绍一些高级技巧,来帮助读者提高开发的效率。 Web服务器:再好的机器也需要借助Web Server才能运行Rails程序。幸运的是,现在已经有几种非常优秀的、基于Ruby实现的服务器可以供我们选择。 安装Ruby和Rail因为考虑到本书的大部分读者可能已经阅读过一些入门的Rails书籍,所以我也不打算花费太多的时问来讲解如何安装Rails。但是,又考虑到有些读者的确需要了解这方面的内容,所以我想至少还是应该为他们指明一个正确的方向,以免有读者在这个问题上无谓地浪费精力和时间。因此在这个部分中,我会从一个更高层次的角度来介绍如何在Linux、Windows和Mac OSX上安装Rails。 如果读者想参考一本入门级的Rails书籍,那么最好的选择是《Agile Web Development with Rails》(Thomas,Dave et al. Pragmatic Programmers,2006)。 …… |
随便看 |
百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。