私はそのようなことをする必要があります
class Foo
define perform()
puts 'hello'
end
end
classname = 'Foo'
instance = create_instance(classname)
instance.perform();
そのようなことは可能ですか。場合はどのようにですか?
どうもありがとう!
私はそのようなことをする必要があります
class Foo
define perform()
puts 'hello'
end
end
classname = 'Foo'
instance = create_instance(classname)
instance.perform();
そのようなことは可能ですか。場合はどのようにですか?
どうもありがとう!
使用できますconst_get
:
instance = Object.const_get(classname).new
instance.perform
はい、可能です-
class Foo
def perform
puts 'hello'
end
end
f = 'Foo'
klass = Object.const_get f
f.new.perform
Module#const_getを使用できます
klass = Object.const_get(classname)
instance = klass.new
ただし、クラス名がユーザー入力によるものである場合は、最初にクラス名をホワイトリストに登録することをお勧めします。そうしないと、セキュリティ ホールが開く可能性があります。