51623
たとえば、以下の文字列があったとします。

```

    "FooModule::BarClass"
    
```

このような、モジュールをフルに含むクラス名の文字列から、 `FooModule::BarClass` のクラスオブジェクトを取得したいと考えました。

eval すれば一発のような気もしますが、脆弱性やバグの温床になりそうなので、できれば避けたいと思っています。

### 質問

  * ruby の、モジュールを含んだフルのクラス名の文字列から、それが表すクラスオブジェクトを取得したいです。これを実現する、そのまま eval 以外の方法などありますでしょうか。
CC BY-SA 4.0
2018-12-17T04:57:51.250
51284
2018-12-30T12:28:57.670
754
question
ruby
ruby の、モジュールを含んだフルのクラス名文字列から、クラスオブジェクトを取得したい
@metropolis さんの指摘通り、 `Module#const_get` は、そのままでも、今回質問で述べた挙動をする様子です。

> This method will recursively look up constant names if a namespaced  
>  class name is provided. For example:
```

>     module Foo; class Bar; end end
>     Object.const_get 'Foo::Bar'
>  
```

>
> – `ri Module#const_get`
CC BY-SA 4.0
2018-12-17T08:16:51.667
51293
2018-12-17T08:16:51.667
754
51284
answer
Rubyであれば`Kernel.const_get`で十分ですが、  
Railsであれば、constantizeを使うのがよいです。  
<https://api.rubyonrails.org/classes/ActiveSupport/Inflector.html#method-i-
constantize>
CC BY-SA 4.0
2018-12-30T12:28:57.670
51623
2018-12-30T12:28:57.670
31623
51284
answer