私はこのようなものを持っています:
string = "Post"
文字列をクラス名リテラルに変換したいと思います。私はこのようなevalを使用して文字列を変換します:
eval(string) #=> Post
JavaScript開発者である私は、evalを避けようとしています。 Rubyでこれを行うより良い方法はありますか?または、evalを使用してこれを処理する好ましい方法ですか?
あなたが試すことができます
class Post
end
Object.const_get("Post")
Post
クラスを返します
Module.const_get を使用します
string = "Fixnum"
clazz = Object.const_get(string)
clazz.name # => "Fixnum"
Railsコンテキストにいる場合は、文字列に対して `#constantizeメソッドを使用することもできます
clazz = string.constantize # => Fixnum