ActiveRecord::Base是如何生成attributes_methods?关于这个问题相信看过《Ruby元编程》一书的伙伴能了解到从,rails1到3的介绍。但是,...
ActiveRecord::Base是如何生成attributes_methods?关于这个问题相信看过《Ruby元编程》一书的伙伴能了解到从,rails1到3的介绍。但是,...
active record 在create/update的时候会默认更新created_at/updated_at字段为当前字段,可以通过config.active_reco...
负责ActiveRecord::Base的association部分的实现,也就是has_many, has_one等等。先看到我们平时用的has_many方法: 通过bui...
这个模块想必大家都会很熟悉,在rails的基础教程里负责password的加密和验证,主要就是给ActiveRecord::Base添加了password=、password...
ActiveRecord::AutosaveAssociation 这个模块主要是负责自动保存associated records当,它的parent保存的时候。除此之外,也...
根据ActiveRecord::Base里的继承链向上阅读 ActiveRecord::Suppressor 先是Suppressor,先看功能部分: 被suppress(抑...
ActiveRecord::NestedAttributes nest attributes的实现部分,也就是嵌套数据部分: 主要部分为module ClassMethods...
ActiveRecord::Transaction 实现transaction部分的功能。 暴露给我们的方法主要是在ClassMethods里: transaction: 在...
ActiveRecord::TouchLater 用了touch_later,来touch的话,会将touch延迟到别的语句执行完之后在commit执行。
ActiveRecord::NoTouching 让你有选择性的可以禁用掉touch,在no_touching的block内。可以使用ActiveBase::Record.n...
首先,我们理解下Reflection的概念:反射:在计算机科学里,是指程序在运行时,可以访问、检测和修改它本身状态或行为的一种能力。内省:内省(或称“自省”)机制仅指程序在运...
用于在类里保存当前线程的变量信息,也就是说一个类extend了PerThreadRegistry,那么这个类的变量将只在这个线程里共享。
这个方法已经没有了,在看rails5.1+的源码里,但是还是记录一下这些方法演变的过程。 alias_method_chain产生的原因 因为给原方法增加新功能的想法在Rai...
自动加载机制 Active Record是Rails的ORM功能实现。上面代码使用了ActiveSupport::Autoload模块,该模块定义了autoload方法。代码...
require load autoload require 1.kernel method,可以加载ruby文件,也可以加载外部的库。2.相比load ,针对同一个文件,它只...
railtie的configuration eager_load_namespaces: 需要提前加载的命名空间watchable_files: 需要被监听到改变的文件wat...
由于平时写类的代码比较多,这里再复习一下模块的知识点: 模块不能拥有实例 模块不能被继承 模块的主要使用方式: 利用 Mix-in 扩展功能 提供命名空间 模块的方法:和类一...
set_load_path:添加config里的一些路径到$LOAD_PATH并且uniq 设置好自动加载的路径和自动加载一次的路径,并且freeze防止被错误修改. add...