Вы не можете сделать это по умолчанию. Это может создать слишком много проблем и побочных эффектов при проверке объектов. Однако вы можете расширить inspect
себя чем-то вроде этого:
class A < ActiveRecord::Base
...
def inspect
[super, bs.inspect].join("\n")
end
end
Примечание, однако, что это не очень умно, так как это заставит загрузку bs
каждый раз, когда вы проверяете в A
экземпляр. Так что, может быть, вы хотите быть умнее и делать что-то вроде этого:
def inspect
[super, bs.loaded? ? bs.inspect : nil].compact.join("\n")
end
Это только инспектировать bs
, если он уже предустановленными (с :include
, например).
Или, возможно, вы хотите создать super_inspect
вместо этого, что делает все автоматически. Вы можете расширить ActiveRecord::Base
что-то вроде:
class ActiveRecord::Base
def deep_inspect
([inspect] + self.class.reflect_on_all_associations.map { |a|
self.send(a.name).inspect if self.send(a.name).loaded?
}).compact.join("\n ")
end
end
это будет автоматически искать все ассоциации с reflect_on_all_associations
, и если загружена ассоциация он будет вызывать inspect
по этому вопросу.
Теперь вы можете изменить приведенный выше код, однако вы хотите создать свой собственный индивидуальный контроль или просто продлить текущий осмотр, если хотите. Все возможно с небольшим количеством кода.