2015-01-14 23 views
0

我想要做的事:无法访问从父类的方法#inherited在子类中定义的方法(红宝石)

class GrandFoo 
    def self.inherited(subclass) 
     puts subclass.new.respond_to? :bar #false 
    end 
end 

class Foo < GrandFoo 
    def bar 
     puts 'bar' 
    end 
end 

# but 
puts Foo.new.respond_to? :bar #true 

我无法找到有关这个案子的信息,实际上我不是当然,我应该寻找什么。 目标是“要求”在特定目录中找到的文件列表,每个文件包含一个具有相同'bar'方法的子类。

回答

1

The documentation for Class#inherited说:每当创建当前类的子类

调用的回调。

它说创建,不已创建。据推测,这意味着不能保证课程“完成”的程度如何,只有被创建。