Ruby:如何动态创建现有类的子类?

时间:2013-10-11 16:46:38

标签: ruby metaprogramming

我正在编写使用Object.const_set创建新类的Ruby代码,它非常适合创建新类并实例化它们的实例。但我希望这些新类继承自我已经硬编码的类。我找不到这样做的方法。这是我的代码:

def create_model_class(klass_name, klass_vars)
    klass = Object.const_set(klass_name, Class.new)
    klass.class_eval do
        define_method(:initialize)
            klass_vars.each_with_index do |name, i|
                instance_variable_set("@"+name[i], name[i])
            end
        end
    end
end

1 个答案:

答案 0 :(得分:17)

Class.new接受一个参数,该参数将是超类。

文档:Class.new