我刚开始学习ruby on rails,遇到过如下代码:
class Post < ActiveRecord::Base
validates_presence_of :title
belongs_to :user
end
类体内有两个方法调用。 我很难找到任何 ruby 文档 描述了从类的主体内部(但在任何方法之外)进行的方法调用是如何工作的。 我所有的书,只描述了如何定义类和实例方法以及如何 从其他方法中调用它们。
我的问题是: 如何以及何时调用这些方法? 它们是如何定义的?它们是在某个事件记录模块中定义的 mixin 吗?
最佳答案
类定义的主体是代码的执行上下文,就像其他代码一样。那里的代码在类的上下文中执行(意思是 self
是类对象,它是 Class 的一个实例)。您可以拥有局部变量和实例变量(它们将属于类对象本身而不是类的实例)并且您可以调用类对象响应的任何方法。一旦类定义 block 完成,代码就会运行。
在这种情况下,ActiveRecord::Base 定义了类方法 validates_presence_of
和 belongs_to
。
关于ruby-on-rails - 在类主体中声明的 Ruby 方法调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1344797/