ActiveRecord源代码阅读之一---------ActiveReocrd::Core

   从开始阅读Rails源代码,一直头疼从哪里下手。经过一番挣扎,决定从ActiveRecord这个gem开始寻求突破口。在ActiveRecord源代码中,我选择了ActiveRecord::Core作为源代码解读的第一站。以下以C来代替ActiveRecord::Core。

   1.extend ActiveSupport::Concern

     extend ActiveSupport::Concern是C源代码中的第一行,之前在看一个Rails项目的时候遇见过concern,我的第一反应是去Rails官方API中去查找该代码的含义。

     在官方API中,我们可以很容易发现,当C被其他module(比如M)所包含之后,concern可以用来完成以下几件事情:

        一,C中被includeed do ..... end 包裹的代码的作用域变成M。

        二,C命名空间下的module(比如 S)自动地实现 在M作用域内的 extend。

   2.mattr_accessor

     mattr_accessor可以同时定义类和实例的accessor。

   3.class_attribute

     class_attribute可以定义一个类属性。

你可能感兴趣的:(Rails,源代码阅读笔记)