ruby-on-rails - 在 Rails 5 中检查对象是否为 ApplicationRecord
问题描述
鉴于这种
module Site
class Translation < ApplicationRecord
为什么此代码返回 false?
2.4.0 :094 > Site::Translation.is_a? ApplicationRecord
=> false
如果
2.4.0 :093 > Site::Translation.superclass
=> ApplicationRecord(abstract)
什么是Site::Translation.is_a?
真实的?
解决方案
因为Site::Translation
对象是类,所以它属于Class
类,它不继承自ApplicationRecord
. 如果您在此类的实际实例上尝试相同的技巧,它将返回true
,如您所料:
Site::Translation.new.is_a?(ApplicationRecord)
# => true
推荐阅读
- visual-studio-2017 - VSTest 任务在预期 v2 时运行 v1,忽略 vstestLocation
- xpath - 使用 Xpath 进行嵌套位置查询
- python-3.x - Selenium 脚本中的预期字符串或类似字节的对象
- firefox - 永远不允许 Firefox 上的升级通知?
- html - 如何在电子邮件 html 中为不同的电子邮件客户端(如 Outlook gmail)使用 ico-moon 图标
- kubernetes - eclipse_che在kubernetes多用户模式下部署失败
- google-apps-script - 使用 getR(2,"firstname") 获取 Range
- python - 将边距设置为 true 时,Pandas pivot_table 会引发关键错误
- windows - PyCharm“无法打开本地终端”“无法启动 cmd.exe”?
- python - Json 到 csv 的转换在 python 中的大文件上花费了非常多的时间