检查对象是否是Rails 5中的ApplicationRecord

时间:2018-12-18 13:26:30

标签: ruby-on-rails ruby-on-rails-5.1

给出这个

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?对“真”有何反应?

1 个答案:

答案 0 :(得分:0)

这是因为Site::Translation对象是类,所以它属于Class类,它不是从ApplicationRecord继承的。如果您在此类的实际实例上尝试相同的技巧,它将如预期的那样返回true

Site::Translation.new.is_a?(ApplicationRecord)
# => true