Проверка, является ли объект ApplicationRecord в Rails 5 - PullRequest
0 голосов
/ 18 декабря 2018

Учитывая это

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? отвечает на true?

1 Ответ

0 голосов
/ 18 декабря 2018

Это потому, что Site::Translation объект является классом, поэтому он принадлежит классу Class, который не наследуется от ApplicationRecord.Если вы попробуете тот же трюк на реальном экземпляре этого класса, он вернет true, как вы ожидаете:

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