ruby-on-rails - 为什么'ancestors.include'时'class'会显示'Class'?类'是'假'?
问题描述
我有一个User
继承自 ApplicationRecord 的类。当我检查User.ancestors.include?(Class)
时,结果是,false
但User.class
结果是Class
。
在这种情况下,该方法提供的信息的用例是class
什么?它真正告诉我什么是实用的?它似乎与继承无关。
解决方案
User
是一类。所有类都是类的实例Class
(即User.class #=> Class
)。因此,所有定义在 上Class
或上Class
的祖先的实例方法都可以在上调用User
(即,每个实例方法Class
都是 的类方法User
)。
例如,Class
的实例方法之一是instance_methods
. 因此,可以执行User.instance_methods
以获得一组User
' 实例方法。
推荐阅读
- javascript - html中以下格式的正则表达式
- regex - 如果后跟斜杠,则正则表达式不匹配
- scala - 如何从scala中的for循环返回产生的值?
- sql - 查找员工最多的国家/地区来自 SQL
- c++ - 递归模板类和专门的基本情况导致 MSVC 错误 C1001(在 GCC 和 Clang 上工作正常)
- extjs - 无限网格不再适用于 Ext JS 7.3.1 现代
- docker - 为什么构建 Docker 容器镜像的第一步需要一个基础镜像作为源,在我看来它本身就是一个像 ALPINE 这样的操作系统?
- javascript - 通过 YouTube API 更新默认广播的流标题
- kotlin - Kotlin 混合类型
- python - 如何在 ubuntu 中的 virtualbox 安装驱动器共享文件夹上创建 python3 virtualenv