2018-07-10

Objective:事实

今天还是做反馈的需求、bug 等,一一修改了,并没有什么特殊的。

需要记录一下的是。devise 需要 user 中复写 email_changed? 方法,所以在使用这个 method 时返回值就一直是 false,所以我改用了 changed.include?("email") 来代替 email_changed?。需要注意的是,为了保证是 update 时 email changed,最好加上 persisted? , 也就是 persisted? && email_changed?

persisted? 看源码可以发现仅仅判断是否是 new_record? 或者 destroyed?

def persisted?
  !(new_record? || destroyed?)
end

Reflective:感受

一开始理解,以为 persisted? 是判断是否持久化到数据库,其实和我理解的有偏差。

Interpretive:想法

查看源码追根究底或许才能解惑。

Decisional : 决定

对于一个 method 不理解最好多去看源码或者文档。

你可能感兴趣的:(2018-07-10)