RoR中有以下代码:
class Product < ActiveRecord::Base
validates :title, :description, :image_url, presence: true
end
我读过一些 Ruby 书籍,但在 OOP 段落中没有看到任何关于在类(不是其他方法)主体中执行类方法的信息!它是什么?它是如何工作的?这个方法什么时候执行?请在这个问题上让我清楚。谢谢。
RoR中有以下代码:
class Product < ActiveRecord::Base
validates :title, :description, :image_url, presence: true
end
我读过一些 Ruby 书籍,但在 OOP 段落中没有看到任何关于在类(不是其他方法)主体中执行类方法的信息!它是什么?它是如何工作的?这个方法什么时候执行?请在这个问题上让我清楚。谢谢。
方法在被调用时被执行。在类体的上下文中,self
成为该类。self
作为接收者可以省略,所以validates
这里与Product.validates ...
or相同self.validates ...
。validates
是 上的类方法Active::Base
,在类定义期间被调用。
self
隐式接收器的含义不同,具体取决于它所在的位置。
module Foo
# module body
def # method name
# method body
end
end
self
: 模块self
: 模块self
: 方法名中的接收者