ruby-on-rails – 为什么我们需要ClassMethods和InstanceMethods?

我读了 API for ActiveSupport :: Concern.有ClassMethods和InstanceMethods,我们可以将类方法放在ClassMethods中.

但是M的主机可以使用M中定义的方法,不行吗?为什么我不能写:

module M
  def self.x
  end

  def y
  end
end

而不是:

module M
  module ClassMethods
    def x
    end
  end
  module InstanceMethods
    def y
    end
  end
end

解决方法

您可能对 Yehuda’s take on this pattern感兴趣.我认为其中一些原因是历史性的,因为除非您手动执行Ruby将通过包含和扩展自动执行,否则它们不是真正需要的.

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...