在ruby中不使用eval将字符串转换为类名?
我有这样的事情:
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