Ruby 包含模块时self.class.method如何工作?
我使用的是HTTParty,您可以根据文档创建一个类:Ruby 包含模块时self.class.method如何工作?,ruby,Ruby,我使用的是HTTParty,您可以根据文档创建一个类: class SomeClass include HTTParty base_uri 'host' def index self.class.get('/path') end end 我不确定模块中如何声明get方法 获取方法在 这是在名为ClassMethods的模块上定义的。如果您进一步查找文件httparty/httparty.rb。在第20行,您将看到: def self.incl
class SomeClass
include HTTParty
base_uri 'host'
def index
self.class.get('/path')
end
end
我不确定模块中如何声明
get
方法 获取方法在
这是在名为ClassMethods
的模块上定义的。如果您进一步查找文件httparty/httparty.rb
。在第20行,您将看到:
def self.included(base)
base.extend ClassMethods
当一个模块包含在另一个模块或类中时,调用
此代码确保当
HTTParty
模块包含在另一个模块或类中时,在HTTParty::ClassMethods
中定义的方法将扩展(作为类方法添加)到宿主对象上。它们成为类方法。模块提供类单例方法,这就是如何获得self.class.get
workingtl;博士-。
def self.included(base)
base.extend ClassMethods