ruby-learn
5天搞定Ruby on Rails 培训大纲
1.第1天:ruby基础编程
- 第一天目标
- Ruby 简介 2.1. Ruby 的特性 2.2. Rails 前景广阔 (1) 在国外, 一大批的创业公司采用 Rails 作为核心技术栈. (2) 国内的一些作品:
- Ruby 开发环境 3.1. 开发Ruby的操作系统环境 (1) 如何选择操作系统 3.1.1. vagrant + virtualbox搭建Ruby开发环境 (1) 安装 virtualbox 和 vagrant 和linux (2) 到 vagrantcloud 上找一个 box (3) 安装cygwin 3.2. Linux 下载安装Ruby (1) 源码安装 自动安装 Ruby 3.3. Ruby IDE集成开发工具 3.4. 交互式 Ruby(IRb)
- 第一个ruby程序 4.1. 从交互式命令开始 4.1.1. 最简单的程序 4.1.2. 复杂一点,搞一个函数 4.2. 离开irb,使用rb文件完成“hello word”
- Ruby 语法基础 5.1. Ruby 标识符 5.2. 标识符之间的空白 5.3. Ruby 程序中的行尾 5.4. 保留字 5.5. 多行字符串 5.6. Ruby 注释 5.6.1. 行注释 5.6.2. 块注释
- Ruby 数据类型 6.1. 数值类型(Number) 6.1.1. 整型(Integer) 6.1.2. 浮点型 6.2. 字符串类型 (1) 字符串=String对象 (2) 字符串内如何含有单引号字符? (3) 替换 (4) 反斜线转义字符 6.3. 范围类型 6.4. 数组 6.5. 哈希类型 6.6. 示例代码:
- 控制结构 7.1. 条件 (1) ifelse 语句 (2) if 修饰符 (3) unless 语句 (4) unless 修饰符 (5) case 语句 7.2. 循环结构 (1) while (2) while 修辞符 (3) until 语句: (4) until 修辞符: (5) for 语句 (6) break 语句: (7) next 语句: (8) Redo (9) retry
- 迭代器 8.1. each 迭代 8.2. collect 迭代:
- 方法 9.1. 方法以及命名规则 9.2. 语法 (1) 方法定义 (2) 方法的参数 9.3. 从方法中返回值: (1) 默认返回值 (2) return 语句: 9.4. 可变参数: 9.5. alias 语句: 9.6. undef 语句:
- 练习一:控制结构+方法练习 10.1. 练习1 10.2. 练习2 10.3. Case练习
- 程序块 11.1. Ruby区块的概念 11.1.1. 语法: 11.1.2. yield 语句: (1) 参数与屈服声明 11.1.3. 块和方法: 11.1.4. BEGIN 和 END 块 11.2. 模块和组合 11.2.1. 模块 11.2.2. require 语句: 11.2.3. 混合类型:
- Ruby 异常 12.1. 语法 12.2. 使用 retry 语句 12.3. 使用 raise 语句 12.4. 使用 ensure 语句 12.5. 使用 else 语句 12.6. Catch 和 Throw 12.7. 类 Exception
- 练习二:程序块+异常练习 13.1. 练习1 13.2. 练习2
2.第2天:面向对象编程
- 第二天目标
- 面向对象基础 2.1.1. 什么是类,什么是对象 (1) 基本概念 类的定义 2.1.2. Ruby类中的变量: (1) 局部变量: 实例变量 类变量 全局变量 2.1.3. 对象 (1) 创建对象 自定义方法来创建Ruby对象 : 2.1.4. 方法成员: 2.1.5. 访问器(accessor) & 设置器(setter)方法 2.1.6. to_s 方法 2.1.7. 练习
- 访问控制 3.1.1. 访问控制的三个级别 3.1.2. 示例 3.1.3. 练习
- 类的继承 4.1.1. 继承案例 4.1.2. 方法重载: 4.1.3. 冻结对象: 4.1.4. 类常量: 4.1.5. 创建对象使用分配: 4.1.6. 类信息:
3.第3天:Rails 控制器
- 第3天目标
- 控制器基础 2.1. 控制器的作用 2.2. 控制器命名约定 2.3. 方法和动作
- 请求参数 3.1. Hash 和数组参数 3.2. JSON 参数 3.3. 路由参数 3.4. default_url_options 3.5. 健壮参数
- 会话 4.1. CookieStore 4.2. 获取会话 4.3. Flash 消息 4.3.1. now
- Cookies
- 过滤器 6.1. 后置过滤器和环绕过滤器 6.2. 前置 6.3. 过滤器的其他用法 6.4. 防止请求伪造 4.第4天:Model 模型培训
- 第4天目标
- 迁移 2.1. 基础 2.1.1. 特点 2.1.2. 简单示例 2.2. rails 迁移指令 2.2.1. 创建表 2.2.2. 增删字段 2.2.3. 创建索引 2.2.4. 创建关联 2.2.5. 模型生成器 2.2.6. 类型修饰符 2.3. 迁移DSL 2.3.1. 创建数据表 2.3.2. 创建 HABTM 联合数据表 2.3.3. 修改数据表 2.3.4. change 方法 2.3.5. reversible 方法 2.3.6. 使用 up 和 down 方法 2.3.7. 撤销之前的迁移 2.4. 迁移任务 2.4.1. 执行迁移 2.4.2. 回滚 2.4.3. 搭建数据库 2.4.4. 重建数据库 2.4.5. 种子数据
- 基本概念 3.1. OR Mapping 对象关系映射 3.2. Model的CRUD四大操作 3.2.1. 创建 (1) Hash 创建 (2) 创建后手动设置属性创建 (3) 使用块创建 3.2.2. 读取 3.2.3. 更新 (1) 设值方式更新 (2) Hash方式更新 (3) 批量更新 3.2.4. 删除 3.3. 基础命名约定 3.3.1. 外键 3.3.2. 主键 3.3.3. 可选的字段 3.3.4. 文件名:下划线隔词,全部小写 3.3.5. 爆炸方法
- Model生命周期 4.1. 回调 4.1.1. 方法回调 4.1.2. 代码块 4.1.3. 事件触发 4.2. 监控类型 4.2.1. 创建对象 4.2.2. 更新对象 4.2.3. 销毁对象 4.2.4. 其他监控 4.2.5. 关联监控 4.2.6. 事务监控 4.3. 监控的触发与跳过 4.3.1. 触发监控 4.3.2. 跳过监控
- 关联 5.1. belongs_to 5.1.1. 场景:多端对一端 (1) 添加的方法 (2) 选项 5.1.2. 属性:拥有者为多端,单数形式 5.1.3. 迁移:外键在多端表 5.2. has_one 5.2.1. 场景:多对一模拟一对一 (3) has_one 关联添加的方法 (4) has_one 方法的选项 5.2.2. 属性:拥有者为一端,单数形式 5.2.3. 迁移:外键保持多端表 5.3. has_many 5.3.1. 场景:一对多 (5) 添加的方法 (6) has_many 方法的选项 (7) has_many 的作用域 5.3.2. 属性:拥有者为一端,复数形式 5.3.3. 迁移:外键保持多端表 5.4. has_many :through 5.4.1. 场景:多对多 5.4.2. 属性:拥有者复数形式;属于者单数形式 5.4.3. 迁移:外键保持在中间表 5.4.4. 两层一对多关系的简化 5.5. has_one :through 5.5.1. 场景:直接访问第三者 5.5.2. 迁移:在下层表 5.6. has_and_belongs_to_many 5.6.1. 场景:多对多 (8) 关联添加的方法 (9) 作用域 5.6.2. 迁移:关联表没有id 5.6.3. 区分has_many :through 5.7. 多态关联 5.7.1. 场景:分类型多对一 5.7.2. 迁移 5.8. 自连接 5.8.1. 场景: 关系在同一个表 5.8.2. 迁移 5.9. 关联要点 5.9.1. 缓存控制 (10) 缓存共享 (11) 重载缓存 5.9.2. 更新模式 5.9.3. 关联的作用域 5.9.4. 双向关联 (12) inverse_of (13) inverse_of 有些限制
- 查询 6.1. 获取对象 6.1.1. 获取单个对象 (1) find(primary_key) (2) take (3) take! (4) first (5) last (6) find_by 6.1.2. 获取多个对象 (1) 使用多个主键 (2) take(limit) (3) first(limit) (4) last(limit) 6.1.3. 批量获取多个对象 (1) find_each (2) find_in_batches 6.2. 条件查询 6.2.1. 纯字符串条件 6.2.2. 数组条件 (3) 条件中的占位符 6.2.3. Hash 条件 (1) 相等 (2) 范围 (3) 子集 6.2.4. NOT 条件 6.3. 排序与分组 6.3.1. 排序 6.3.2. 查询指定字段 6.3.3. 限量和偏移 6.3.4. 分组 6.3.5. 分组筛选 6.3.6. 条件覆盖 (1) unscope (2) only (3) reorder (4) reverse_order (5) rewhere 6.4. 特殊对象 6.4.1. 空关系 6.4.2. 只读对象 6.4.3. 更新时锁定记录 (1) 乐观锁定 (2) 悲观锁定 6.5. 连接 6.5.1. 连接数据表 (1) 使用字符串形式的 SQL 语句 (2) 使用数组或 Hash 指定具名关联 (3) 指定用于连接数据表上的条件 6.5.2. 按需加载关联 (1) 按需加载多个关联 (2) 指定用于按需加载关联上的条件 6.5.3. 作用域 (1) 传入参数 (2) 合并作用域 (3) 指定默认作用域 (4) 删除所有作用域 6.5.4. 其他查询 (1) 动态查询方法 (2) 查找或构建新对象 (3) 使用 SQL 语句查询 (4) 检查对象是否存在 6.6. 计算 6.6.1. 计数 6.6.2. 平均值 6.6.3. 最小值 6.6.4. 最大值 6.6.5. 求和 6.6.6. 执行 EXPLAIN 命令
- 数据验证 7.1. 简介 7.1.1. 示例 7.1.2. why 1.1.1.1 弥补数据库约束 1.1.1.2 前台验证很容易跳过 7.2. 验证基本环节 7.2.1. 验证相关方法 7.2.2. 跳过验证相关方法 7.2.3. valid? 和 invalid? 7.2.4. errors[] 1.2 2验证类型 7.2.5. acceptance 7.2.6. validates_associated 7.2.7. confirmation 7.2.8. exclusion 7.2.9. format 7.2.10. inclusion 7.2.11. length 7.2.12. numericality 7.2.13. presence 7.3. 验证选项 7.3.1. :allow_nil 7.3.2. :allow_blank 7.3.3. :message 7.3.4. :on 7.4. 处理验证错误 7.4.1. 流程 7.4.2. errors 1.2.1 errors[] 1.2.2 errors.size 1.2.3 errors.clear
5.第5天:视图培训 掌握 Ruby Rails 布局和视图渲染。
第5天:Rails 布局和视图渲染 1
- 第5天目标 22
- 布局结构 2.1. 静态资源标签帮助方法 2.1.1. 使用 auto_discovery_link_tag 链接到 Feed 2.1.2. 使用 javascript_include_tag 链接 JavaScript 文件 2.1.3. 使用 stylesheet_link_tag 链接 CSS 文件 2.1.4. 使用 image_tag 链接图片 2.1.5. 使用 video_tag 链接视频 2.2. yield 2.2.1. 理解 yield 2.2.2. content_for 方法 2.2.3. 使用局部视图 (1) 具名局部视图 (2) 使用局部视图简化视图 (3) 局部布局 (4) 传递本地变量 (5) 渲染集合 (6) 本地变量 (7) 集合局部视图的布局 2.2.4. 使用嵌套布局
- 表单 3.1. 表单基础 3.1.1. 空表单 (8) form_tag (9) 标签 3.1.2. 搜索表单 (1) 方法 (2) HTML 3.1.3. 多个 Hash 参数 3.2. 表单方法 3.2.1. 帮助方法 (1) 复选框 (2) 单选框 (3) 其他帮助方法 3.2.2. 表单与对象绑定 (1) 绑定属性与Hash对象 (2) 把表单绑定到对象上 (3) 自动绑定 (4) 处理命名空间 (5) 请求方法处理 3.2.3. 选择列表 (1) select 和 option 标签 (2) 模型的选择列表 (3) 根据任意对象组成的集合创建 option 标签 (4) 时区和国家选择列表 3.2.4. 日期和时间表单 (1) 独立的帮助方法 (2) 模型对象的帮助方法 (3) 通用选项 3.3. 参数命名约定 3.3.1. 基本结构 3.3.2. 结合在一起使用 3.3.3. 表单帮助方法
- 渲染视图 4.1. render 4.1.1. 什么都不渲染 4.1.2. 渲染动作的视图 4.1.3. 渲染其他控制器中的动作模板 4.1.4. 小结 4.1.5. 渲染类型 (1) 渲染文本 (2) 渲染 HTML (3) 渲染 JSON (4) 渲染任意文件 (5) 渲染 XML (6) 渲染普通的 JavaScript (7) 渲染原始的主体 4.1.6. render选项 (1) :content_type (2) :layout 选项 (3) :location 选项 (4) :status 选项 4.1.7. 查找布局 (1) 指定控制器所用布局 (2) 运行时选择布局 (3) 条件布局 (4) 布局继承 (5) 避免双重渲染错误 4.1.8. redirect_to 4.1.9. 设置不同的重定向状态码 4.1.10. render 和 redirect_to 的区别 4.2. head 4.2.1. 使用 head 构建只返回报头的响应
- respond_to 5.1. 请求头 5.2. 设置 5.3. 例子
5天搞定Ruby on Rails 企业内训纲要
大纲:ruby培训5天搞定
版本: V1 口号:快速迭代,不断完善
ruby技术交流--南方群 95824005 ruby技术交流--北方群 101388340 ruby技术交流--东部群 236263776 ruby技术交流--西部群 230015785 ruby技术交流--中部群 104131248 文档,实例地址: https://github.com/nienwoo/ruby-learn