检查对象是否是 Rails 5 中的应用程序记录



鉴于此

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

最新更新