2012-03-11 205 views
8

动态调用类方法说我有保存在一个变量的型号名称:如何红宝石

"#{class_name.singularize}" 

从另一个控制器我想看到这个模型中定义的列。我试图

send("#{class_name.singularize}.columns") 

,但其试图调用Page.columns因为我目前的工作中,而不是Page类的类的方法。任何想法如何做到这一点?

回答

13

使用constantize

class_name.singularize.constantize.columns 
+0

未定义的方法'constanstize”为 “页”:字符串(NoMethodError) – 2012-03-11 06:54:25

+0

@j_mcnally因为我不会打字,这是'constantize'。更新了答案。 – 2012-03-11 06:55:21

+0

awsome!非常感谢,我不知道这可以做到,你摇滚! – 2012-03-11 07:00:26