首页 > 解决方案 > 为什么'ancestors.include'时'class'会显示'Class'?类'是'假'?

问题描述

我有一个User继承自 ApplicationRecord 的类。当我检查User.ancestors.include?(Class)时,结果是,falseUser.class结果是Class

在这种情况下,该方法提供的信息的用例是class什么?它真正告诉我什么是实用的?它似乎与继承无关。

标签: ruby-on-railsruby

解决方案


User是一类。所有类都是类的实例Class(即User.class #=> Class)。因此,所有定义在 上Class或上Class的祖先的实例方法都可以在上调用User(即,每个实例方法Class都是 的类方法User)。

例如,Class的实例方法之一是instance_methods. 因此,可以执行User.instance_methods以获得一组User' 实例方法。


推荐阅读