我在 Ruby 中有一个基类,它有一个继承的类方法。我想在基类中调用此方法,但将其传递给派生类指定的选项,如下所示:
class Base < SuperDuperClass
super_duper_class_method :option => my_option_value
def self.my_option_value
raise "Method my_option_value must be overridden by all subclasses"
end
end
class Derived < Base
def self.my_option_value
"My Derived Option Value"
end
end
但是,这是行不通的。我相信是因为基类中的顶层代码在派生类中的顶层代码之前执行,所以调用 super_duper_class_method 时没有定义派生方法。我宁愿不必在所有派生类中调用 super_duper_class_method,而只需指定选项即可。
有任何想法吗?