只是好奇为什么会在rails控制台中发生这种情况:
Loading development environment (Rails 4.1.5)
2.1.2 :001 > require 'application_controller'
=> true
2.1.2 :002 > ApplicationController
=> ApplicationController
2.1.2 :003 > ApplicationController.subclasses
=> []
2.1.2 :004 > ::ApplicationController.descendants
=> []
我有这个控制器
class MyController < ApplicationController
end
所以我期待ApplicationController.subclasses #=> [MyController]
,但是,我得到一个空数组:(
答案 0 :(得分:2)
嗯,恭喜MrYoshiji,但这是你如何显示子类。:
Loading development environment (Rails 4.1.5)
2.1.2 :001 > require 'application_controller'
=> true
2.1.2 :001 > require 'my_controller'
=> true
2.1.2 :002 > ApplicationController
=> ApplicationController
2.1.2 :003 > ApplicationController.subclasses
=> [MyController]
延迟加载意味着在运行时专门调用它之前,内存中不存在该对象。我的第二个命令require 'my_controller
主动引用ApplicationController的子类,因此当我们使用.subclass
方法列出其子类时它会出现。