Rails之道(The Rails Way)
分類: 图书,计算机与互联网,程序语言与软件开发,语言与开发工具,
品牌: 费尔南德斯(Obie Fernandez)
基本信息·出版社:人民邮电出版社
·页码:504 页
·出版日期:2010年04月
·ISBN:9787115220721
·条形码:9787115220721
·版本:第1版
·装帧:平装
·开本:16
·正文语种:中文
·丛书名:The Rails Way
产品信息有问题吗?请帮我们更新产品信息。
内容简介本书按照Rails的各个子系统进行组织编排,分别介绍了Rails的环境、初始过程、配置和日志记录,Rails的分配器、控制器、页面生成和路由,REST、资源和Rails,ActiveRecord的基储关联、验证和高级技巧,ActionView的模板、缓存和帮助器,Ajax、Prototype和Scriptaculous等JavaScript代码库和RJS,Session管理、用户登录和认证系统,XML和ActiveResource,后台处理和ActionMaile,测试和specs(包括RSpec on Rails和Selenium),安装、管理、编写插件,Rails的生产部署、配置和Capistrano等内容。 本书详细讨论了Rails的程序代码并通过分析Rails中的代码片段来深入解释它的功能,同时,本书部分章节也摘录了一些API文档中的内容,使读者能够快速地找到对应的API文档、相关的示例代码以及深入的解析说明。 本书是Rails的权威参考书,适合对Rails已经有一定了解的开发人员学习和使用。
目录
目录 第1章Rails环境与配置1 1.1启动1 1.1.1默认环境设置1 1.1.2引导2 1.1.3RubyGems3 1.1.4初始化4 1.1.5默认加载路径4 1.1.6Rails模组及代码自动加载5 1.1.7内置的Rails信息5 1.1.8配置6 1.1.9附加配置8 1.2开发模式8 1.2.1类文件自动化重新加载9 1.2.2Rails类加载器9 1.3测试模式10 1.4生产模式11 1.5日志器11 1.5.1Rails日志文件12 1.5.2日志分析13 1.5.3Syslog15 1.6总结15 第2章运用控制器16 2.1调度器:从这里开始16 2.1.1接收请求17 2.1.2和调度器亲密接触17 2.2渲染视图18 2.2.1何时开始渲染19 2.2.2指定渲染19 2.2.3渲染其他动作的模板19 2.2.4渲染一个完全不同的模板20 2.2.5渲染局部模板20 2.2.6渲染内联模板代码21 2.2.7渲染文本21 2.2.8渲染其他类型的数据结构21 2.2.9什么都不渲染21 2.2.10渲染的属性22 2.3重定向23 2.4控制器和视图之间的通信25 2.5过滤器25 2.5.1过滤器继承26 2.5.2过滤器的类型27 2.5.3过滤器的队列的顺序28 2.5.4Around过滤器28 2.5.5跳过过滤器29 2.5.6过滤器条件29 2.5.7过滤器挂起30 2.6流30 2.6.1send_data(data, options = {})30 2.6.2send_file(path, options = {})31 2.6.3让web服务器发送文件33 2.7小结33 第3章路由34 3.1路由的两个目的35 3.2绑定参数35 3.3使用通配符(“接收器”)36 3.4静态字符串37 3.5route.rb文件38 3.5.1默认的路由信息39 3.5.2聚焦在:id字段40 3.5.3默认的路由生成规则40 3.5.4修改默认的路由信息41 3.6默认路由信息之前的信息和respond_to41 3.7空的路由信息42 3.8编写自定义路由规则43 3.9使用静态字符串43 3.10使用你自己的“接收器”44 3.11关于路由次序的说明45 3.12在路由信息中使用正则表达式45 3.13默认参数和url_for方法46 3.14使用文字化的URL47 3.15路由中的通配字段47 3.16通配符的键—值对48 3.17具名路由48 3.17.1创建具名路由49 3.17.2比较name_path和name_url的使用49 3.17.3请考虑49 3.18如何命名你的路由50 3.18.1参数糖衣50 3.18.2更多糖衣51 3.19特殊的范围方法with_options51 3.20小结52 第4章REST,资源和Rails53 4.1REST简介53 4.2Rails的REST54 4.3路由选择和CRUD54 4.4资源和表现55 4.4.1REST资源与Rails55 4.4.2从具名路由到REST支持55 4.4.3重新认识HTTP方法56 4.5标准的REST化的控制器动作57 4.5.1模拟PUT和DELETE操作58 4.5.2REST化的资源的单数和复数58 4.5.3特殊的拍档:new/create和edit/update58 4.6单数的资源路由59 4.7嵌套资源59 4.7.1显式地设置:path_prefix60 4.7.2显式地设置:name_prefix61 4.7.3显式地设置REST化的控制器61 4.7.4使用所有选项62 4.7.5思考嵌套路由63 4.7.6嵌套过深63 4.8自定义REST化的路由64 4.8.1添加成员路由65 4.8.2添加集合路由65 4.8.3思考65 4.9仅有控制器的资源67 4.10资源的不同展现形式68 4.10.1respond_to方法68 4.10.2格式化具名路由68 4.11REST化的Rails动作集合69 4.11.1Index69 4.11.2Show71 4.11.3Destory71 4.11.4New和Create72 4.11.5Edit和Update73 4.12小结74 第5章探究路由选择75 5.1在应用程序控制台检查路由75 5.1.1转存路由信息75 5.1.2剖析Route对象76 5.1.3在控制台识别和生成路由78 5.1.4控制台的具名路由79 5.2测试路由80 5.3Routing Navigator插件80 5.4小结81 第6章运用ActiveRecord82 6.1基础知识82 6.2数据迁移84 6.2.1创建迁移84 6.2.2用于迁移的API87 6.2.3定义列88 6.3宏样式方法92 6.3.1关系声明93 6.3.2约定优于配置93 6.3.3复数化94 6.3.4手动设置名字95 6.3.5遗留的命名约定95 6.4定义属性96 6.4.1默认属性值96 6.4.2序列化属性98 6.5CRUD:创建、读娶更新和删除98 6.5.1创建新的ActiveRecord实例98 6.5.2读取ActiveRecord对象99 6.5.3读写属性100 6.5.4在类型转换之前访问并且操作属性102 6.5.5重新载入102 6.5.6基于属性的动态查找器102 6.5.7自定义SQL查询103 6.5.8查询缓存104 6.5.9更新106 6.5.10基于条件的更新107 6.5.11更新特定实例107 6.5.12更新特定属性107 6.5.13便利的更新器108 6.5.14控制对属性的访问108 6.5.15删除和销毁109 6.6数据库锁定109 6.6.1乐观锁定110 6.6.2悲观锁定111 6.6.3需要考虑的问题112 6.7高级查找112 6.7.1条件112 6.7.2查询结果集的排序114 6.7.3限制和偏移量114 6.7.4select选项115 6.7.5from选项115 6.7.6group by选项115 6.7.7locking选项116 6.7.8连接和包含关联116 6.7.9read only116 6.8在不同的数据模型中连接多个数据库116 6.9直接使用数据库连接117 6.9.1DatabaseStatements模组118 6.9.2其他连接方法119 6.10其他配置选项120 6.11小结121 第7章ActiveRecord关联122 7.1关联的继承关系122 7.2一对多关联123 7.2.1向集合添加已经关联的对象124 7.2.2AssociationCollection的方法125 7.3belongs_to关联127 7.3.1重新载入关联127 7.3.2通过关联来构建(build)或创建(create)相关对象128 7.3.3belongs_to的选项128 7.4has_many关联132 7.4.1has_many的选项133 7.4.2代理方法137 7.5多对多关系138 7.5.1has_and_belongs_to_many138 7.5.2has_many :through143 7.5.3has_many :through的选项146 7.6一对一关系148 7.6.1has_one148 7.6.2has_one的选项150 7.7未保存的对象和关联151 7.7.1一对一关联151 7.7.2集合152 7.8关联的扩展152 7.9AssociationProxy类153 7.10小结154 第8章ActiveRecord验证155 8.1查找错误155 8.2简单的验证声明155 8.2.1validates_acceptance_of156 8.2.2validates_associated156 8.2.3validates_confirmation_of156 8.2.4validates_each157 8.2.5validates_inclusion_of和validates_exclusion_of157 8.2.6validates_existence_of158 8.2.7validates_format_of158 8.2.8validates_length_of159 8.2.9validates_numericality_of159 8.2.10validates_presence_of159 8.2.11validates_uniqueness_of160 8.2.12RecordInvalid161 8.3通用验证选项161 8.3.1:allow_nil161 8.3.2:if161 8.3.3:message161 8.3.4:on161 8.4条件认证162 8.5使用Errors对象163 8.5.1操作Errors集合163 8.5.2Errors的检查163 8.6自定义验证164 8.7跳过验证164 8.8小结165 第9章ActiveRecord的高级技巧166 9.1回调方法166 9.1.1注册回调方法167 9.1.2匹配before/after回调方法167 9.1.3中断执行168 9.1.4使用回调方法168 9.1.5特殊的回调方法:after_initialize和after_find170 9.1.6回调方法类171 9.2观察器173 9.2.1命名规则173 9.2.2注册观察器174 9.2.3时机174 9.3单表继承(single-table inheritance,STI)174 9.3.1将继承映射到数据库176 9.3.2STI值得注意的几点177 9.3.3STI和数据模型关联177 9.4抽象数据类型的基类179 9.5多态的has_many关系180 9.5.1假如数据模型带有注释功能180 9.5.2使用has_many的注意事项182 9.6用以重用通用行为的模块182 9.6.1回顾类的作用范围和环境184 9.6.2Include回调方法185 9.7在运行时修改ActiveRecord186 9.7.1应用时的注意事项187 9.7.2Ruby和域指定语言187 9.8小结188 第10章ActionView189 10.1ERb基�189 10.1.1ERb实践189 10.1.2整理ERb输出191 10.1.3ERb分隔符中的注释191 10.1.4条件输出191 10.1.5RHTML? RXML? RJS?191 10.2布局和模板192 10.2.1使用Yield生成内容193 10.2.2模板变量194 10.2.3针对用户提交的数据保护你的视图196 10.3局部模板197 10.3.1简单的使用示例197 10.3.2重用局部模板198 10.3.3共享局部模板198 10.3.4给局部模板传递变量199 10.3.5渲染数据集合200 10.3.6日志201 10.4缓存201 10.4.1在开发模式下的缓存201 10.4.2页面缓存202 10.4.3动作缓存202 10.4.4片段缓存203 10.4.5缓存内容的期限205 10.4.6使用Sweeper自动过期缓存206 10.4.7缓存日志207 10.4.8Action Cache插件208 10.4.9缓存的存储208 10.5小结209 第11章辅助方法210 11.1ActiveRecordHelper210 11.1.1报告验证的错误210 11.1.2自动创建表单212 11.1.3自定义验证错误的高亮方式213 11.2AssetTagHelper214 11.2.1Head的辅助方法214 11.2.2针对插件的辅助方法以设定默认的JavaScript文件217 11.3BenchmarkHelper217 11.4CacheHelper217 11.5CapturelHelper218 11.6DateHelper218 11.6.1日期时间选择218 11.6.2单个日期和时间选择辅助219 11.6.3日期选择辅助方法的通用选项220 11.6.4名字复杂的distance_in_time方法221 11.7DebugHelper222 11.8FormHelper222 11.8.1通过表单创建Active Record模型222 11.8.2表单辅助方法是怎样取值的?227 11.9FormOptionsHelpers228 11.9.1Select标签的辅助器228 11.9.2Option标签的辅助器229 11.10FormTagHelper232 11.11JavaScriptHelper234 11.12NumberHelper235 11.13PaginationHelper236 11.13.1will_paginate236 11.13.2paginator237 11.13.3Paginating Find237 11.14RecordIdentification237 11.15RecordTagHelper239 11.16TagHelper239 11.17TextHelper240 11.18UrlHelper245 11.19编写你自己的辅助方法249 11.19.1小小的优化:Title辅助方法249 11.19.2封装视图的逻辑:photo_for辅助方法250 11.19.3智能视图:breadcrumbs辅助方法250 11.20包装并生成局部视图模板251 11.20.1一个tiles辅助器251 11.20.2生成局部模板253 11.21小结255 第12章Ajax on Rails256 12.1Prototype257 12.1.1FireBug257 12.1.2Prototype API257 12.1.3顶层函数258 12.1.4类259 12.1.5JavaScript的对象类的扩展259 12.1.6扩展JavaScript的Array类260 12.1.7扩展document对象261 12.1.8扩展Event类261 12.1.9扩展JavaScript的Function类263 12.1.10扩展JavaScript的Nubmer类263 12.1.11扩展JavaScript String类264 12.1.12Ajax对象266 12.1.13Ajax.Responders266 12.1.14Enumerable267 12.1.15Hash270 12.1.16ObjectRange271 12.1.17Prototype 对象271 12.2PrototypeHelper模组271 12.2.1link_to_remote271 12.2.2remote_form_for274 12.2.3periodically_call_remote275 12.2.4observe_field276 12.2.5observe_form277 12.3RJS——在Ruby中编写Javascript277 12.3.1RJS模板278 12.3.2
……[看更多目录]