应用程序控制器没有子类?

时间:2014-09-26 14:02:01

标签: ruby-on-rails

只是好奇为什么会在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],但是,我得到一个空数组:(

1 个答案:

答案 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方法列出其子类时它会出现。