Day25 心得体会&读书笔记

2017-05-29  本文已影响12人  柳辉

一、心得体会
1、今天完成了什么?

2、今天收获了什么?

3、今天犯了什么错误?

4、今天的状态如何?

5、明天还有哪些工作需要完成?

6、今天一个重要的领悟是什么?

二、读书笔记

几道考试题

13、”中国 2013″.size= ”中国 2013″.bytesize=?
size 字符数
bytesize 字节数

14、yield self 的用法, 写个例子
所有的"方法(methods)"隐式跟上一个"块(block)"参数。

块参数也可以明确给定,形式就是在参数前面加一个"&",比如 def fn(arg1, arg2, &block) end,其中的 &block 就是明确给定的块参数。

块参数的动作,可以通过调用 call() 方法执行,还可以用 yield 来执行 —— yield 其实就是一个语法糖。

所以以下几种写法常常是等价的:

#method receives an invisible block argument
def foo1()
    yield 1
end

#specify it explicitly
def foo2(&block)
    yield 1
end

#yield is equal to block.call
def foo3(&block)
    block.call(1)    
end

#function call
foo1 {|x| puts x}    # => 1
foo2 {|x| puts x}    # => 1
foo3 {|x| puts x}    # => 1

15、rails 三种工作环境的区别(development, testing, and production)
开发、测试、生产

16、Rails是什么
web开发框架

17、什么是重构?

18、Active Record是什么?
Active Record是MVC中的M(模型),负责处理数据和业务逻辑,AR负责创建和使用需要持久存入数据库中的数据。
Active Record实现了AR模式,是一种对象关系映射系统。

更新

一次更新多个属性时使用这种方法最方便,如果想批量更新多个记录,可以使用类方法update_all

User.update_all "max_login_attempts = 3, must_change_password = 'true'"

19、什么数据验证
在存入数据库之前,AR还可以验证模型,模型验证有很多方法,可以检查属性值是否不为空,是否是唯一的、没有在数据中出现过,等等。

把数据存入数据库之前进行验证是十分重要的步骤,所以调用save和update方法时会做数据验证。验证失败时返回false,此时不会对数据库做任何操作,这两个方法都有对应的爆炸方法(save!和update!)。爆炸方法要严格一些,如果验证失败,抛出ActiveRecord::RecordInvalid异常,下面举个简单的例子:

class User < ApplicationRecord
  validates :name, presence: true
end

user = User.new
user.save
user.save!

下面这个模式是什么意思?

/\A[+-]?\d+\z/

20、什么是严格验证?
还可以采用严格验证,当对象无效时抛出ActiveModel::StrictValidationFailed异常。

21、什么是条件验证?
有时,只有满足特定条件时做验证才说的通,条件可通过:if和:unless选项指定,这两个选项的值可以是符号、字符串、Proc或数组。

:if选项指定何时不做验证,使用:unless选项。

4.5 条件验证

有时,只有满足特定条件时要验证才说的通,条件可通过:if和:unless选项指定,这两个选项的值可以是符号、字符串、Proc或数组。

22、什么是自定义验证,举个例子?
如果内置的数据验证辅助方法无法满足需求,可以选择自己定义验证使用的类或方法。

4.6.1 自定义验证类
自定义的验证类继承自ActiveModel::Validator,必须实现validate方法,其参数是验证的记录,然后验证这个记录是否有效,自定义的验证类通过validates_with方法调用。

23、怎么处理验证错误,举个例子?
除了前面介绍的valid?和invalid方法之外,Rails还提供了很多方法用来处理errors集合,以及查询对象的有效性。

24、什么是Active Record回调?
ActiveModel::Errors的实例包含所有的错误,键是每个属性的名称,值是一个数组,包含错误消息字符串。

errors[]用于获取某个属性上的错误消息,返回结果是一本由属性所有错误消息字符串组成的数组,每个字符串表示一个错误消息。如果字段上没有错误,则返回空数组。

25、对象的生命周期是什么?
在Rails应用正常运作期间,对象可以是被创建、更新和删除,AR为对象的生命周期提供了钩子,使我们可以控制应用及其数据。

上一篇下一篇

猜你喜欢

热点阅读