无法从父 class 的 #inherited 方法 (Ruby) 访问子 class 中定义的方法
Unable to access method defined in child class from parent class's #inherited method (Ruby)
我想做什么:
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
我找不到有关此案例的信息,实际上我不确定应该查找什么。
目标是 "require" 在特定目录中找到的文件列表,每个文件都包含一个具有相同 'bar' 方法的子类。
The documentation for Class#inherited
说:
Callback invoked whenever a subclass of the current class is created.
它说已创建,而不是已创建。据推测,这意味着无法保证 "complete" class 是怎样的,只有 在 的创建过程中。
我想做什么:
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
我找不到有关此案例的信息,实际上我不确定应该查找什么。 目标是 "require" 在特定目录中找到的文件列表,每个文件都包含一个具有相同 'bar' 方法的子类。
The documentation for Class#inherited
说:
Callback invoked whenever a subclass of the current class is created.
它说已创建,而不是已创建。据推测,这意味着无法保证 "complete" class 是怎样的,只有 在 的创建过程中。