我有一个类的名称,我想创建该类的一个实例,这样我就可以遍历该类的模式中存在的每个rails属性。
我该怎么做呢?
发布于 2011-05-08 06:56:36
在rails中,您只需执行以下操作:
clazz = 'ExampleClass'.constantize
在纯红宝石中:
clazz = Object.const_get('ExampleClass')
使用模块:
module Foo
class Bar
end
end
您将使用
> clazz = 'Foo::Bar'.split('::').inject(Object) {|o,c| o.const_get c}
=> Foo::Bar
> clazz.new
=> #<Foo::Bar:0x0000010110a4f8>
发布于 2011-05-08 06:57:04
在Rails中非常简单:使用String#constantize
class_name = "MyClass"
instance = class_name.constantize.new
发布于 2011-05-08 06:59:36
试试这个:
Kernel.const_get("MyClass").new
然后循环遍历对象的实例变量:
obj.instance_variables.each do |v|
# do something
end
https://stackoverflow.com/questions/5924495
复制相似问题