2014-05-13 34 views
8

我有這樣的事情:在不使用eval的情況下將字符串轉換爲類名?

string = "Post" 

我想字符串轉換爲一個類名文字。我使用這樣的eval轉換字符串:

eval(string) #=> Post 

作爲一個javaScript開發人員,我儘量避免eval。在Ruby中有更好的方法嗎?或者是使用eval處理這個問題的首選方式?

+3

你在紅寶石軌道上嗎? – xlembouras

+1

平原紅寶石。我知道,Ruby on Rails有一個方法,這個http://stackoverflow.com/questions/3464007/ruby-convert-class-name-in-string-to-actual-class – Stratus3D

回答

21

您可以嘗試

class Post 
end 

Object.const_get("Post") 

它返回Post

18

使用Module.const_get

string = "Fixnum" 
clazz = Object.const_get(string) 
clazz.name # => "Fixnum" 

如果你在一個軌道背景下,您還可以在使用`#constantize方法字符串

clazz = string.constantize # => Fixnum 
+0

constantize是最好的比別人 – vajapravin

相關問題