4

我经常看到这种模式:

module Article::Score

    def self.included(base)
        base.send :extend, ClassMethods
        base.send :include, InstanceMethods
    end

    module ClassMethods
    ...
    end

    module InstanceMethods
    ...
    end
end

然后在文章模型中,我看到了这个

class Article
   include Article::Score
   ...
end

所以我的猜测是“base”可能是指文章类,我们只是包括实例方法和扩展类方法。但是有人可以解释片段“self.included(base)”并概述那里发生的事情吗?

4

1 回答 1

8

包含模块时调用 self.included 函数。它允许在基础的上下文中执行方法(包含模块的地方)。

于 2013-10-25T20:27:27.533 回答