ichiroc subset

書きながら考える・考えをまとめる場所

Rubyでクラス名の文字列又はシンボルからクラスを取得する

背景

引数でクラス名を受け取って、インスタンスを取得したい。

方法

Module#const_get にクラス名の文字列を渡すと、そのモジュールに所属しているクラスを取得出来る。 トップレベルに所属してるクラスは Module で取得出きる。

コード

class Hoge
end

hoge_class = Module.cont_get "Hoge" 
hoge_class.new     # => Hoge のインスタンス

module Foo
  class Bar
  end
end

bar_class = Foo.const_get "Bar"
bar_class.new      # => Foo::Bar のインスタンス

参考

クラス名の文字列からクラスを取得する方法

Ruby 2.0.0 リファレンスマニュアル > ライブラリ一覧 > 組み込みライブラリ > Moduleクラス > const_get