我正在阅读一些使用rails 4中关注点的代码。
我读了一些文章说,如果我们想包括类方法
使用moduleClassMethods,但我读到的代码类似于:

class_methods do
  def ****
  end
end

最佳答案

只是为了方便。module ClassMethods是纯红宝石,但为了方便起见,class_methods中定义了ActiveSupport::Concern。如果你看一个源代码,你会发现class_methods做了完全相同的事情

  # activesupport/lib/concern.rb
  def class_methods(&class_methods_module_definition)
    mod = const_defined?(:ClassMethods, false) ?
      const_get(:ClassMethods) :
      const_set(:ClassMethods, Module.new)

    mod.module_eval(&class_methods_module_definition)
  end

关于ruby-on-rails - class_methods在关注方面做什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33326257/

10-12 05:14